有沒有辦法確定哪些客戶端電腦已安裝來自 GPO 的軟體?

有沒有辦法確定哪些客戶端電腦已安裝來自 GPO 的軟體?

如果我使用 GPO 分配軟體,我假設客戶端電腦下次重新啟動時將安裝該軟體。然而,如果沒有親自去拜訪每個客戶並親自檢查,我就無法確定。有沒有辦法檢查哪些客戶端已安裝該軟體(例如 WSUS)或編寫腳本來檢查客戶端上已安裝軟體的版本?

答案1

GPO 沒有任何內建的報告機制。


警告Microsoft 推薦的以下程式碼有嚴重問題。請參閱此答案下方的評論,其中包含 2009 年「快速發布」(即緊急)知識庫文章的連結。


如果您使用的是較新的電腦 (Vista/2008+),您可以使用 PowerShell:gwmi -comp computer_name Win32_Product取得已安裝軟體的清單。它會傳回如下資訊:

IdentifyingNumber : {D11F66FF-82B3-DDB8-1146-525370552BE1}
Name              : Windows Software Development Kit for Windows Store Apps
Vendor            : Microsoft Corporation
Version           : 8.59.25584
Caption           : Windows Software Development Kit for Windows Store Apps

可以進一步編寫腳本來產生安裝了各種版本的特定軟體的電腦清單、匯出到 CVS 或其他 ODBC 連線或各種任務......具體取決於您要尋找的內容。這個過程有點棘手,因此您可能需要考慮執行此“-AsJob”以並行執行多個查詢。

答案2

這個問題太籠統了,我最多只能指點一下。考慮一下如何確認安裝。例如,%programfiles%\Company\SoftwareXYZ\abc.exe 中存在檔案是否會告訴您應用程式安裝成功?

  • 它是一個註冊表項嗎?
  • 帶有一些成功密鑰的日誌檔案?
  • 事件日誌?

一旦你弄清楚了這一點,你將需要編寫一個腳本來檢查它。

然後您需要在某處報告結果。例如,您可以將 COMPUTERNAME 作為檔案發佈到網路共用中。例如,批次檔中的以下行將執行此操作:

echo. > \\MyServer\MyShare\%COMPUTERNAME%_Success.txt

最後,您可以將該腳本新增為同一 GPO 中的啟動腳本。

相關內容