![SCCM 2012 应用程序检测不断检测未安装的程序](https://linux22.com/image/688779/SCCM%202012%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%A3%80%E6%B5%8B%E4%B8%8D%E6%96%AD%E6%A3%80%E6%B5%8B%E6%9C%AA%E5%AE%89%E8%A3%85%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我有一个应用程序(Adobe Acrobat DC),可以正常安装,使用从 MSI 中提取的检测方法(查找 GUID {E89A7DBA-B343-4476-82B6-980A10E13334} )。
但是,如果从客户端 PC 卸载应用程序,检测仍会坚持认为应用程序可用(PC 仍在 SCCM 中的相应集合中)。如果我从集合中移除 PC 并刷新所有内容,Acrobat 将从 PC 上的软件中心中消失。如果我随后将 PC 重新添加到集合并刷新,Acrobat 会重新出现在软件中心中,并坚持认为它已安装,尽管它没有在任何地方被引用。
我已经删除了注册表中对 GUID 的任何引用,并且如果我运行“wmic product get Name,IdentifyingNumber”,应用程序就不会显示。
检测在这台电脑上找到 Acrobat 的位置在哪里?我想我可能需要更改检测以查找 acrobat.exe 文件来检测它是否已安装...
答案1
“检测在此 PC 上找到 Acrobat 的位置在哪里?” - 您可以在客户端上使用 DeploymentMonitoringTool.exe 查看部署的详细信息,包括检测方法。在您使用 MSI 代码的情况下,它会从 WMI 查询产品代码。
“如果应用程序从客户端 PC 卸载,检测仍坚持认为应用程序可用(PC 仍在 SCCM 中的相应集合中)。” - 从客户端卸载应用程序不会更改集合的成员身份,除非此集合基于查询此应用程序的存在。如果是后者,这不是一个好的做法,因为您的查询可能基于按计划时间上传的硬件清单数据。
如果您将 PC 从应用程序部署所针对的集合中移除,则该应用程序肯定会从软件中心消失。如果您将 PC 重新添加到集合中,客户端将评估部署类型的检测方法 - 如果检测到产品代码,它将不会出现在软件中心中;如果未检测到产品代码,它将显示在软件中心中并显示为“可用”以进行安装(尚未安装)。
appdiscovery.log 将显示该应用程序是否安装,然后您将清除。
检测 Acrobat.exe 是否存在并不是最好的方法,因为:1)其他目录中可能只有安装文件夹的副本。2)您的环境中可能有其他版本的 Acrobat。