如果我使用 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 中的啟動腳本。