使用 WUA 掃描離線 更新

Windows Update 代理程式 (WUA) 可用來掃描電腦是否有安全性更新,而不需要連線到 Windows Update 或 Windows Server Update Services (WSUS) 伺服器,這可讓未連線到因特網的計算機掃描安全性更新。

離線掃描更新需要從 Windows Update 下載已簽署的檔案Wsusscn2.cab。

Wsusscn2.cab檔案是由 Microsoft 簽署的封包檔案。 此檔案包含 Microsoft 所發佈之安全性相關更新的相關信息。 無法連線到因特網的計算機可以掃描,以查看這些安全性相關的更新是否存在或必要。 Wsusscn2.cab檔案不包含安全性更新本身,因此您必須透過其他方式取得並安裝任何所需的安全性相關更新。 隨著 Windows Update 網站上發行、移除或修訂安全性相關更新,會定期發行新版本的 Wsusscn2.cab 檔案。 最新的Wsusscn2.cab檔案可在下列位置下載: 下載Wsusscn2.cab

下載最新的Wsusscn2.cab之後,您可以將檔案提供給 AddScanPackageService 方法,而且 WUA API 可用來搜尋離機電腦以取得安全性更新。 WUA 會先驗證Wsusscn2.cab是否已由有效的 Microsoft 憑證簽署,再執行離機掃描。

注意

對 CAB 檔案進行離線掃描時,您可能會遇到高於一般記憶體使用量的體驗。 建議您對系統進行必要的調整,為掃描程式配置足夠的記憶體資源。 這可能包括設定其他處理器和修改頁面檔。 確保適當的記憶體配置有助於有效率且有效地完成掃描。

注意

根據 SHA-1 淘汰計劃,Wsusscn2.cab檔案不再使用 SHA-1 和 SHA-2 哈希演算法套件進行雙重簽署(特別是 SHA-256)。 此檔案現在僅使用 SHA-256 簽署。 管理員 驗證此檔案數位簽名的用戶現在應該只預期單一 SHA-256 簽章。

範例

下列範例會使用 Wsusscn2.cab 檔案掃描計算機,並顯示遺失的更新。

重要

這些腳本旨在示範如何使用 Windows Update 代理程式 API,並提供開發人員如何使用這些 API 解決問題的範例。 這些腳本的目的不是生產程序代碼,而且 Microsoft 不支援腳本(雖然支援基礎 Windows Update 代理程式 API)。

Set UpdateSession = CreateObject("Microsoft.Update.Session")
Set UpdateServiceManager = CreateObject("Microsoft.Update.ServiceManager")
Set UpdateService = UpdateServiceManager.AddScanPackageService("Offline Sync Service", "c:\wsusscn2.cab")
Set UpdateSearcher = UpdateSession.CreateUpdateSearcher()

WScript.Echo "Searching for updates..." & vbCRLF

UpdateSearcher.ServerSelection = 3 ' ssOthers

UpdateSearcher.ServiceID = UpdateService.ServiceID

Set SearchResult = UpdateSearcher.Search("IsInstalled=0")

Set Updates = SearchResult.Updates

If searchResult.Updates.Count = 0 Then
    WScript.Echo "There are no applicable updates."
    WScript.Quit
End If

WScript.Echo "List of applicable items on the machine when using wssuscan.cab:" & vbCRLF

For I = 0 to searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    WScript.Echo I + 1 & "> " & update.Title
Next

WScript.Quit