GPO软件安装是否将重新安装来自其他策略的已安装的应用程序?

我期望通过GPO软件安装策略安装我们的最新AV套件。 (如下面的屏幕截图。)

在这里输入图像描述

不幸的是我的要求使用DFS已被拒绝,我需要为我们的环境中的每个站点(每个站点是它自己的子网)创build一个GPO。 我遇到的问题是,有很多用户在网站之间旅行,所以当他们移动到另一个网站时,他们会得到新的GPO,并且不在以前的GPO范围内。

我找不到有关GPO软件安装是否将在当前PC上已经存在的应用程序重新安装的具体文档。 当计算机超出范围时,我将使用该选项离开应用程序。

从我的研究中,我发现GPO只适用于GPO的版本发生了变化,这很好,但是实际的MSI呢?

我发现人们提出了两个scheme,但不能备份:

  1. GPO调用Windows Installer服务来检查已安装的程序列表,只有当前的MSI版本不存在时才会安装。

  2. GPO安装会使用自己的软件列表保留自己的应用程序caching,如果应用程序不在该列表中,即使已经安装,也会安装该应用程序。

任何人都可以为我确认正确的信息吗?

编辑:谢谢你们的答复,我知道其他替代方式来部署软件,但是我后面是一个具体的答案是否GPO部署将重新安装包,如果它已经存在于工作站上。

过去我不得不这样做时,我避免了软件安装GPO,因为它们是有限的,并且会导致很多问题。

编辑:为了响应您的编辑,是的,软件安装GPO可以并将重新安装已安装的软件。 (这是他们造成的问题之一 – 远非唯一的问题)。在你的情况下,如果你select使用软件安装GPO,这是你必须在一些工作,以防止,如格雷格答案中的build议 。

当我不得不使用GPO来安装软件时,过去的做法是使用GPO,它启动一个脚本安装,检查是否已安装。 看下面的例子,安装PC * Miler26 不寒而栗的一堆XP机器。

截图显示了启动脚本GPO指向我们公司的DFS上的一个位置(我已经编辑过),脚本本身是一个bat文件,由于我们的环境的限制 – XP机器和WMI经常被打破我们的客户,这是唯一可靠的工作。

在这里输入图像描述

echo off reg query "HKEY_LOCAL_MACHINE\SOFTWARE\ALK Technologies\PC*Miler 26.0" if %errorlevel%==1 (goto Install) else (goto End) REM If errorlevel returns a value of 1, it means the key is not present, thus the program is not installed. So install it. :Install \\[Our DFS software share]\PCMiler26\Network\setup.exe /s REM If errorlevel returns a value other than 1, the key is present, and the program is already installed, or something odd's going on. No installation. :End 

如果它是不同的GPO,它可能会尝试重新安装。 如果它实际上完成重新安装取决于包。 软件安装GPO有许多限制,不是部署应用程序最灵活的方法。 如果您没有BigFix或SCCM等真正的部署解决scheme,则应该只使用它。

您可以通过创build一个筛选器来指定一个组策略首选项来寻找一个能够指示应用程序是否被安装的标记。 例如,如果ntrtscan服务不存在。

更多信息:

http://evilgpo.blogspot.com/2012/05/inverting-wmi-filters.html

注意底部的例子。 您将为不存在的服务创build项目级定位filter。

我知道这有点旧了,但是我正在研究与此相关的事情,并认为我也会分享我的经验。

这取决于你如何分配应用程序。 另外GPO应用程序应用程序大多是坏的。 在我的testing中,我已经通过计算机(2012 R2域到Win7计算机,使用卡巴斯基微星进行testing)分配它。

为了testing,我制作了部署MSI的GPO副本,并将其应用到之前关联的OU。 我运行了gpupdate / force,没有提示重新启动计算机(这意味着没有对计算机进行更改)。 要确认应用的GPO,运行gpresult / R并确认Copy_of_GPO是bieng应用的。 为了仔细检查GPO如何处理安装程序,我查了一下registry中的内容。“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Group Policy \ AppMgmt \”(感谢通过组策略分配软件 – 客户如何知道如果安装了软件包 )GPO中显示了COPY_of_GPO的GPO GUID。 产品ID的单个实例位于AppMgmt下,并保留最初的GPO GUID作为源GPO。

哪里坏了; 说你然后解除链接任何一个GPO。 由于应用MSI的GPO不再适用,MSI将被删除。 即使其他GPO分配它。 这个打嗝很重要,因为显然应用的GPOS在它们的设置被应用之前被枚举(这就是为什么如果你分配多个程序与多个GPO他们都在同一时间安装)。 如果处理和删除应用软件的GPO,则会创build(丢失)争用条件。 GPO GUID存在,但它包含的PKG GUID不存在。

AV使用情况更糟,可能会出现Windows安装/卸载问题。 事实上,卡巴斯基甚至有一个独立的卸载程序来删除自己的客户端。 AV不喜欢走开。

这更糟糕的MSI设置不完善。

TL:DR不要使用通过GPO分配的应用程序,尤其是使用AV。

额外阅读: https : //msdn.microsoft.com/en-us/library/cc782152%28v=ws.10%29.aspx