GPO 软件卸载未发生

GPO 软件卸载未发生

我在软件 GPO 方面遇到了一些问题,使用 Google 似乎找不到任何答案。我使用我的策略成功部署了软件,但当我删除另一个软件时,软件的卸载却没有发生。我做了什么:

  • 使用 GPO 部署软件,gpupdate /force在工作站上用于更新、重启和安装软件
  • 通过以下方式删除另一个软件安装:右键单击 > 所有任务 > 删除 >“立即从用户和计算机中卸载该软件”

从那里,我又gpupdate /force尝试让 GPO 刷新并卸载工作站上的软件。这没有用。然后,我强制在域控制器之间进行复制,并gpupdate /force在工作站上运行另一个,但这并没有卸载软件。当我进入事件查看器时,没有错误日志或指示正在触发卸载的迹象,而且我确实知道该策略在其他方面是有效的。

我的问题是: 基于我已经尝试过的方法,我下一步该在哪里找到为什么 GPO 软件部署有效但卸载无效的答案?

先感谢您。

更新: 使用 后gpresult /z,没有任何迹象表明有待卸载或删除的软件。在标题为“软件安装”的部分下,没有列出我试图卸载的软件。没有其他迹象表明我试图卸载的软件甚至存在。我还打开了 RSoP 日志记录并做了(又一次)gpupdate /force没有产生明显的结果。没有迹象表明甚至触发了卸载事件,更不用说无能或失败了。

虽然我确信我已将其标记为在发生两种事件(超出管理范围以及删除条目)时卸载,但我开始认为该条目从未触发过应该触发的事情。

更新 #2: 在排除了这个(令人沮丧的)应用程序分配故障后,我把它归结为侥幸。我已经用其他软件进行了测试,以确保其他应用程序分配的卸载确实有效,所以我假设它与包直接相关。我的问题可能与@joeqwerty在下面的评论中链接的内容有关,但由于我无法回到过去,所以我认为我无法证明这一点。我可能会通过另一个 GPO 运行脚本来保证卸载剩余的包安装。目前,Evan Anderson 得到了答案,因为我能够很好地利用调试信息。

更新 #3:在 Evan 修改了他的回答后,我做了更多的挖掘。当我从 GPO 中删除应用程序分配时,我实际上删除了 2 个条目。一个是针对以前的版本,一个是针对最新版本(即:程序 v1.0 和程序 v1.1,后者更新了程序 v1.0)。我检查了packageFlag这两个,其中一个表明我实际上没有选中“立即卸载”(这是 v1.0)。最新的更新包(v1.1)设置为卸载,并具有以下标志:-1610350320。我无法使用我通常使用的任何资源找到此标志的描述,但我假设这表示立即卸载包(与 相比-1610612464,Evan 表示的意思是保留包)。非常感谢 Evan 向我展示这个资源,我不知道它的存在!你也是对的,“将其归结为侥幸”让我很不舒服,我无法停止思考发生了什么。

感谢迄今为止做出贡献的所有人!

答案1

下一个要查看的地方是此强制卸载应该生效的客户端计算机上的策略结果集 (或gpresult /z)。根据客户端上的 Windows 版本 (Windows Vista 或更新版本与 Windows XP),您应该分别在“系统”或“应用程序”事件日志中看到一些“应用程序管理”。奇怪的是您看不到任何与“应用程序管理”相关的事件日志消息。

编辑:

我强烈怀疑您错误地选择了“允许用户继续使用该软件,但阻止新的安装”而不是“立即从用户和计算机上卸载该软件”。

为了确定,您需要从分配了包的 GPO 的“Machine”子容器的“Class Store”子容器的“Packages”子容器中的“packageRegistration”对象中获取“packageFlags”属性的值。

看着packageFlags 属性的描述将它与我这边 AD 中已知的软件包进行比较,我可以告诉你“立即从用户和计算机中卸载软件”的 packageFlags 值为“-1610612592”。设置为“允许用户继续使用软件,但阻止新安装”的软件包的 packageFlags 值为“-1610612464”。

检查一下,也许就能知道到底发生了什么。如果你和我一样,除非你知道问题的根本原因,否则你是睡不好觉的。

答案2

您的意思是无需重启计算机吗?文档指出卸载发生在重启(计算机范围)或登录(用户范围)期间:

删除托管应用程序
http://technet.microsoft.com/en-us/library/cc758851%28v=ws.10%29.aspx

“...指定在用户下次登录或重新启动计算机,单击“立即从用户和计算机中卸载该软件”。

答案3

您是否将安装文件保留在最初安装的位置?如果已删除或移动这些文件,则删除将失败。

您是否检查过应用程序管理事件的事件日志?这些日志中可能包含问题的线索。

有关信息,如果安装仍然失败,并且您仍然有可用的.msi 文件(位置不重要),您可以通过创建执行以下操作的计算机启动脚本来强制卸载:

msiexec /q /x \\path\to\installation.msi

包含安装源的共享必须可供“所有人”(或更具体地说是“域计算机”组)读取

相关内容