在windows 2003 r2环境中,我通过组策略分发了部分软件,现在发现经常有一些客户端会重复安装,有部分情况是当客户端计算机死机或非正常关机,然后启动后就会再次安装分发的软件。请问如何能够避免软件的重复分发。另外,从什么地方能看到配置的软件是否分发到客户端上,都哪些客户端安装了,哪些没有安装?

回答:根据您的描述,我对这个问题的理解是:您希望避免软件的重复分发。根据我的经验和研究,客户端在重新登录系统时,会检测注册表是否已经安装了通过策略分发的软件,如果检查的结果失败,系统会尝试重新安装软件。因此您之前所说的情况属于异常重启导可能致软件没有从注册表中可注册安装信息,那么在重新启动之后,该软件会自动检测并安装。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1

为了便于问题解决,您可以根据如下方法进行组策略软件分发部署的故障排查:
1. 这种现象只在客户端异常重启后才有么?不异常重启的客户端也会重新安装软件么
2. 在分发软件策略的服务器上激活Appmgmt.log :
      1. 单击 开始 ,单击 运行 ,在 打开 框中, 键入 regedit ,然后单击 确定 。
      2.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics注意 您可能必须创建在 诊断 注册表子项。 
      3. 在 编辑 菜单上, 指向 新建 ,然后单击 DWORD 值 。
      4. 键入 AppMgmtDebugLevel ,然后按 ENTER 键。
      5. 双击 AppMgmtDebugLevel,在 数值数据 框中, 键入 4b ,然后单击 确定 。 
      6. 退出注册表编辑器。
      7.您进行此注册表修改之后,组策略处理发生时创建一个名为 Appmgmt.log 的日志文件。 Appmgmt.log 文件位于 AppMgmtDebugLevel 注册表值已启用的计算机上 %SystemRoot%\Debug\UserMode 文件夹中。您看到的文章来自活动目录seo http://gnaw0725.blog.51cto.com/156601/d-1
 
3. 在出问题的客户端上激活MSI.Log
       1. 单击 开始 ,单击 运行 ,在 打开 框中, 键入 regedit ,然后单击 确定
       2. 在注册表中创建以下路径和注册表项:      HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
           Reg_SZ:Logging
           值:voicewarmup
       3. 单击 开始 ,单击 运行 ,在 打开 框中, 键入 cmd 回车
       4. 键入cd %temp% 回车
       5. 键入 dir 然后找到以字母“Msi”开头,以 .log 扩展名结束时间最新的log
       6. 键入上述log的全名如“MSI6ca5e.LOG”回车
       7. 将文本的内容复制下来,复制到一个MSI.Log文件中

4. 分析上述两个文件Appmgmt.log和MSI.Log两个文件

默认情况下,您是无法在服务器查看软件是否分发到客户端上了,因为这些信息默认情况下是不会想服务器反馈的,除非您安装其他的软件,如MOM,可以将客户端的信息以log的方式传到服务器端,以便查看。

Jason Hou 侯铮 微软全球技术支持中心

组策略软件分发|故障排查方法的相关文章请参考
组策略软件分发|WMI筛选
组策略软件分发|wmi筛选释疑
组策略补丁分发
组策略分发Office|自动输入序列号

组策略软件分发|故障排查方法
组策略软件分发权限
---gnaw0725