SCCM2012 中的应用程序评估疑难解答

Dol*_*kle 4 deployment sccm-2012

我遇到了一个有趣的问题,一些应用程序在 SCCM 2012 中无法正确评估。我拥有的示例软件是 Adob​​e reader 11。当我通过软件中心使用 MSI 部署进行安装时,一切正常。当有人访问 adobe 网站并下载可执行安装程序并运行它时,问题就会出现。现在软件中心检测到该软件已卸载,并将列出作为可用标题。

我正在使用“Windows 安装程序”检测方法并查找此 GUID“{AC76BA86-7AD7-1033-7B44-AB0000000001}”。当我查看 AppDiscovery.log 时,我得到的只是“未发现 +++ 应用程序”。信息。

那么问题来了:我在哪里可以看到检测方法正在查询什么以及它返回什么?

附加问题:执行“Windows 安装程序”检测时,系统在哪里查找该 GUID?

提前致谢

Wes*_*eed 7

好的,这将是一个很长的帖子,但这里有好东西。

首先,已安装软件的 GUID 位于以下位置...

对于 32 位 Windows 和 64 位 Windows 上的 64 位软件:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

对于 64 位 Windows 上的 32 位软件:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

您遇到的问题是 GUID 字符串不正确。您从 Adob​​e 下载的 MSI 是美国英语版本,因此 GUID 字符串的第三部分中的 1033(1033 是美国键盘的 ANSI 代码页)。

然而,EXE 安装程序是 MUI 版本,其 GUID 为 {AC76BA86-7AD7-FFFF-7B44-AB0000000001} —— 注意 FFFF 代替了 1033,这意味着它是多语言的。

在您的检测方法中,您需要添加一个 OR 子句,以便它将任一 GUID 识别为有效安装。

您还应该注意两个问题:

1) 您应该在检测方法中指定版本号。Reader 11 的所有版本都具有相同的 GUID(即 11.0.1 与 11.0.7 相同),因此如果用户使用旧版本,它将导致您的检测方法返回误报。

2) 如果您关心 Reader 的安全补丁,那么您应该知道 Adob​​e 仅针对 MUI 版本发布了他们的补丁。如果不卸载/重新安装整个产品,就无法使用他们的 MSI 从 11.0.1 升级到 11.0.7。如果您尝试,它只会告诉您产品已经安装(因为 GUID 是相同的)。

以下是使用 SCCM 管理 Adob​​e Reader的正确方法: 您的应用程序中需要两种部署类型。

1) 按照您已有的方式配置 11.0.0 MSI(确保检测方法指定了 11.0.00 的版本号——不要只使用 GUID)并保存并关闭它。

2) 返回并添加另一种部署类型。这次,选择 Script Installer 作为类型(SCCM 本身不处理 MSP 文件)。将它指向您的 MSP 文件并使用 msiexec /update(而不是通常的 msiexec /i)作为您的命令行。对于检测方法,使用与版本相同的 GUID,但使用 11.0.07(或其他)。指定第一个部署类型作为其依赖项。然后确保补丁在列表中具有更高的优先级。现在保存并再次关闭它。

现在,当没有安装阅读器的客户端请求应用程序时,两者都会被安装。如果此人已经安装了 EXE 版本,则会对其进行修补。如果它已经打过补丁,那么它只会显示为已经安装。