none
关于播发软件时,已安装该软件的client不在运行此播发应该如何设置? RRS feed

  • 问题

  •  

        我的域环境中有几百台电脑,如果我新建一个播发,安装OFFICE软件,应该怎么设置才能让所有已经安装此软件的CLIENT不再运行这个播发?
    2009年1月3日 7:15

答案

  • 两个方法:

    1.你可以写个脚本,先判断当前client上是否已经安装了QQ (例如查询WMI class root\cimv2\Win32Reg_AddRemovePrograms中受否有对应DisplayName的instance), 如果没有再运行QQ的安装命令。

    然后把这个脚本和QQ的安装程序一起播发出去,让client运行这个脚本。

     

    2.如果你使用的是ConfigMgr 2007, 你可以用Task Sequence 来实现:

    1.创建QQ的安装包

    2.创建一个空的Task Sequence,然后添加step“Install Software”,并选中第一步创建的软件包

    3.选中这个step的选项页,  加一个if- none条件

    4.在if-none条件下加一个WMI Query  条件 namespace: "root\cimv2"; WQL Query: "select * from Win32Reg_AddRemovePrograms where DisplayName like "%[QQ 的displayname或关键字]%"

    5.最后把这个task sequence 播发出去

     

    2009年1月5日 5:41
  •  

    最简单的办法就是你的 advertisement 的目标collection 不要用机器名,而是用查询来定义。SMS / SCCM 都有很直观的 GUI 来帮助你创建这个查询,很简单。

     

    add_remove_programs 中 没有QQ的才计入这个collection 就可以了。而且如果用户卸载了QQ,这个计算机就自动被加回这个collection,这个advertisement 自然又会在这个机器上安装。

    2009年1月5日 6:49
    版主
  •  

    collection 需要手动更新membership,所以delpoy结果可能会有冲突。建议用vb script动态detect后选择是否run 这个adv。
    2009年1月5日 9:15

全部回复

  •  

    SCCM 的 advertisement 中有设置,rerunAlways 那么在下一个schedule 它就会运行。 software update的 advertisement 的这个属性是缺省的,对于software 的 deployment,这个属性一般是 rerunOnFailure,所以只要第一次运行正常,下一次就会发现已经安装过,就不再安装了,在 execmgr.log 中可以看见系统的这些动作。

     

    在SMS 2003 中,这个属性是不可见的,而且是不可写的,只能通过脚本绕过 installation history 记录来rerun program,SCCM 中这个属性可配置,简单多了。

     

     

    2009年1月3日 8:40
    版主
  • 我的意思是,我先在CLIENT上安装QQ了,然后CLIENT加入到域,安装了SCCM客户端,这个时候SCCM中发布了一个QQ的播发,如何使这个播发不在这台已经安装过QQ的电脑上出现,因为我发现已经装过的电脑上还是会出现倒计时,然后安装该软件。

    2009年1月4日 7:02
  • 两个方法:

    1.你可以写个脚本,先判断当前client上是否已经安装了QQ (例如查询WMI class root\cimv2\Win32Reg_AddRemovePrograms中受否有对应DisplayName的instance), 如果没有再运行QQ的安装命令。

    然后把这个脚本和QQ的安装程序一起播发出去,让client运行这个脚本。

     

    2.如果你使用的是ConfigMgr 2007, 你可以用Task Sequence 来实现:

    1.创建QQ的安装包

    2.创建一个空的Task Sequence,然后添加step“Install Software”,并选中第一步创建的软件包

    3.选中这个step的选项页,  加一个if- none条件

    4.在if-none条件下加一个WMI Query  条件 namespace: "root\cimv2"; WQL Query: "select * from Win32Reg_AddRemovePrograms where DisplayName like "%[QQ 的displayname或关键字]%"

    5.最后把这个task sequence 播发出去

     

    2009年1月5日 5:41
  •  

    最简单的办法就是你的 advertisement 的目标collection 不要用机器名,而是用查询来定义。SMS / SCCM 都有很直观的 GUI 来帮助你创建这个查询,很简单。

     

    add_remove_programs 中 没有QQ的才计入这个collection 就可以了。而且如果用户卸载了QQ,这个计算机就自动被加回这个collection,这个advertisement 自然又会在这个机器上安装。

    2009年1月5日 6:49
    版主
  •  

    collection 需要手动更新membership,所以delpoy结果可能会有冲突。建议用vb script动态detect后选择是否run 这个adv。
    2009年1月5日 9:15