SCCM2012 中的應用程序評估故障排除
我遇到了一個有趣的問題,即某些應用程序在 SCCM 2012 中無法正確評估。我擁有的範例軟體是 Adobe Reader 11。當我通過軟體中心使用 MSI 部署進行安裝時,一切正常。當有人訪問 adobe 網站並下載可執行安裝程序並執行它時,就會出現問題。現在軟體中心檢測到該軟體已解除安裝,並將列為可用標題。
我正在使用“Windows 安裝程序”檢測方法並尋找此 GUID“{AC76BA86-7AD7-1033-7B44-AB0000000001}”。當我查看 AppDiscovery.log 時,我得到的只是“未發現 +++ 應用程序”。資訊。
**那麼問題來了:**我在哪裡可以看到檢測方法正在查詢什麼以及返回什麼?
**額外問題:**執行“Windows Installer”檢測時,系統在哪裡尋找該 GUID?
提前致謝
好的,這將是一個很長的文章,但這裡有好東西。
首先,已安裝軟體的 GUID 位於以下位置…
對於 32 位 Windows 和 64 位 Windows 上的 64 位軟體:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
對於 64 位 Windows 上的 32 位軟體:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
您遇到的問題是 GUID 字元串不正確。您從 Adobe 下載的 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 相同),因此如果使用者使用的是舊版本,它將導致您的檢測方法返回誤報。
- 如果您關心 Reader 的安全更新檔,那麼您應該知道 Adobe 僅針對 MUI 版本發布他們的更新檔。如果不解除安裝/重新安裝整個產品,您就無法使用 MSI 從 11.0.1 升級到 11.0.7。如果您嘗試,它只會告訴您產品已經安裝(因為 GUID 相同)。
以下是使用 SCCM 管理 Adobe Reader 的正確方法:您的應用程序中需要兩種部署類型。
- 按照已有的方式配置 11.0.0 MSI(確保檢測方法指定了 11.0.00 的版本號——不要只使用 GUID)並保存並關閉它。
2)返回並添加另一種部署類型。這一次,選擇 Script Installer 作為類型(SCCM 本身不處理 MSP 文件)。將它指向您的 MSP 文件並使用 msiexec /update(而不是通常的 msiexec /i)作為命令行。對於檢測方法,使用相同的 GUID,但 11.0.07(或其他)作為版本。將第一個部署類型指定為其依賴項。然後確保更新檔在列表中具有更高的優先級。現在保存並再次關閉它。
現在,當沒有安裝閱讀器的客戶端請求應用程序時,兩者都將被安裝。如果該人已經安裝了EXE版本,它將被修補。如果它已經打過更新檔,那麼它只會顯示為已安裝。