如何使用 PowerShell 自動化 Windows 更新:簡要概述
修補程式管理是 IT 基礎架構管理中至關重要的一環,正如 Windows 工作站備份. 透過合適的修補程式管理解決方案,您可以透過測試或安裝最新的軟體更新與修補程式來強化系統。修補程式被視為在完整版軟體發布之間,針對現有問題所提供的臨時解決方案。若能有效執行修補程式管理,您便能及時處理系統中的漏洞,並降低潛在威脅。
Windows 提供其專屬的修補程式管理解決方案——Windows Update。然而,許多 IT 管理員仍認為修補程式管理流程過於複雜且耗時。此外,系統更新常在上班時間自動啟動,可能影響您的生產工作流程。透過 PowerShell cmdlets,您可以自動化 Windows 更新,節省人力與時間。
這篇部落格文章說明如何使用 PowerShell 安裝 Windows 更新,並包含一份 實用的 PowerShell 指令 以自動化修補程式管理流程。安裝修補程式可降低系統受錯誤或漏洞影響的風險。
什麼是 PSWindowsUpdate?
為了讓 Windows 修補程式管理流程更加順暢且輕鬆,您可以使用 Michal Gajda 開發的 PSWindowsUpdate 模組。此模組已公開釋出,可從 PowerShell Gallery. 主要需求是電腦必須運行 Windows Vista 或 Windows Server 2008 及後續版本的作業系統。此外,您還需要安裝 PowerShell 2.0 或更新版本。
透過 PSWindowsUpdate,您可以確認電腦是否有可用的 Windows 更新。此外,此模組還允許您集中管理各台 Windows 伺服器和工作站上的 Windows 更新。藉此,您可以遠端控制哪些更新應被安裝、移除或隱藏。
如何使用 PowerShell 自動化 Windows 更新
以下我們將概述 PSWindowsUpdate 的設定流程,包括如何下載並安裝此模組,以及如何查閱有助於自動化 Windows 更新的指令。
如何安裝 PSWindowsUpdate
要有效自動化 Windows 修補程式管理,您首先需要在電腦上安裝 PSWindowsUpdate 模組。為此,請以系統管理員身分開啟 PowerShell 命令提示字元,並輸入以下指令:
Install-Module -Name PSWindowsUpdate
執行此指令後,系統會詢問您是否要從 PSGallery 安裝指定的模組。請選擇 Yes 如果您希望繼續並接受所有變更。

安裝模組後,您需要確認能夠遠端存取其他電腦。如此一來,您便能為遠端電腦安裝 Windows 更新,從而節省時間與精力。 若要讓 PSWindowsUpdate 模組能與遠端電腦配合運作,您需要將模組儲存至您的電腦,並透過網路進行共用。
若其他伺服器能夠匯入並部署此模組,您即可設定自動化的 Windows 修補程式管理。為此,您應執行以下 cmdlet:
Save-Module -Name PSWindowsUpdate -Path
在此,您需要定義 –Path 透過指定要將 PSWindowsUpdate 模組儲存的位置來設定此參數。
如何使用 PSWindowsUpdate
在接下來的步驟中,您將學習如何使用此模組,透過 PowerShell 指令來自動化 Windows 更新。對於需要在沒有圖形介面的 Server Core 機器上執行修補程式管理流程的 IT 管理員而言,這是一大優勢。透過這些指令,您可以降低管理複雜度,使流程更為簡便且減少出錯的可能性。
若要取得所有可用 Windows 更新的完整清單,請執行以下 PowerShell 指令:
Get-WindowsUpdate
您的螢幕上應會顯示以下內容:
透過這些資訊,您將能確切知道哪些軟體或應用程式需要更新。之後,您可以輸入以下指令來安裝所有更新。此外,透過加入 –AutoReboot 參數,即可確保系統在安裝更新後會自動重新啟動。
Get-WUInstall -AcceptAll –AutoReboot
如果您不希望系統重新啟動(以免中斷生產工作流程),可以執行以下 cmdlet:
Get-WUInstall -AcceptAll –IgnoreReboot
在螢幕上,您可以查看修補程式管理流程的進度,以及所有更新的完整清單及其當前狀態。
安裝程序完成後,您將在 PowerShell 主控台中看到以下訊息: "需要重新啟動,但請手動執行"。 因此,您仍需重新啟動系統,但可選擇最符合您行程的時間進行。
若您只想下載特定的更新,您可以新增 –KBArticleID PowerShell 指令碼的參數。請務必指定 KB 文章編號,以便下載正確的修補程式。例如,若要安裝 Windows 惡意軟體移除工具 (x64) 以及 Windows Defender 防毒軟體的安全情報更新. 正確的 PowerShell 指令應如下所示:
Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll
執行此指令後,我的電腦上將僅安裝其中兩項更新。
PSWindowsUpdate 命令概覽
如果您想知道哪個 PowerShell cmdlet 可以與 PSWindowsUpdate 模組配合使用,請輸入以下命令並按下 Enter:
Get-Command –module PSWindowsUpdate
在此,您可以查看該模組的所有指令清單。

讓我們來了解這些指令中的一些是如何運作的。
1. 該 Get-WUHistory 此 cmdlet 可讓您查看最新更新的記錄。執行此指令後,螢幕上將顯示類似的輸出內容。
2. 接下來的 cmdlet 是 Get-WUInstallerStatus,這有助於您確認 Windows Installer 服務的狀態。在此,您可以檢查安裝程式是否運作正常。此操作的輸出結果可能如下所示:
3. 透過執行 Get-WURebootStatus 透過此 cmdlet,您可以確認是否需要重新啟動系統,以便某個特定更新能完全套用。
4. 透過 Get-WUServiceManager 透過此 cmdlet,您可以查看 Windows 更新的來源。
如您所見,最後一欄顯示了更新來源(例如 Windows Update、DCat Flighting Prod 等)。
5. 您可以將清單中的特定更新隱藏起來,以避免在您的電腦上安裝這些更新。為此,您應執行 Hide-WindowsUpdate 此指令可讓您指定要隱藏的 KB 文章 ID。以下範例示範如何將 KB2267602 更新從清單中隱藏:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
在進行任何變更之前,系統會要求您確認選項。請輸入 Y 以隱藏此知識庫文章。

不過,如果您想取得隱藏更新的清單,可以執行以下 cmdlet。
在"狀態"欄中,您可以看到該信件 H 表示該更新已成功隱藏。因此,下次您執行 Get-WUInstall 指令,所選的更新將自動從可用更新清單中排除。
若要還原變更,您可以在 PowerShell 主控台中使用以下 cmdlet:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
如您所見,這封信 H 已不再包含在更新狀態中,這表示此 Windows 更新不再被隱藏,您可以在電腦上下載。
6. 您還可使用另一項設定選項,將已安裝在電腦上的更新移除。為此,您可以使用 Remove-WindowsUpdate cmdlet,並輸入您要從電腦中解除安裝的 KB 文章編號。例如:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
透過加入 –IgnoreReboot 參數,即可確保電腦不會自動重新啟動。解除安裝更新後,您稍後再重新啟動電腦即可。
7. 最後但同樣重要的是,您可以使用 Get-WUList cmdlet。
Get-WUList –ComputerName Server5
要讓此 cmdlet 正常運作,您還需在遠端電腦上安裝 PSWindowsUpdate 模組。如此一來,您便能透過單一管理介面,自動執行多台電腦的 Windows 更新。透過 PSWindowsUpdate,修補程式管理流程得以簡便且高效地執行。
此外,您還能減輕 IT 管理員在系統修補過程中可能面臨的管理負擔。
結語
PSWindowsUpdate 模組的開發旨在讓修補程式管理流程更加簡便且高效。透過自動化更新安裝流程,您可以確保系統定期獲得更新,從而將系統故障與安全漏洞的風險降至最低。 修補程式主要用於解決程式中發現的問題或漏洞。然而,僅靠例行性的修補程式管理,無法確保對整個生產環境提供全面的保護。
為此,您需要採用一套全面性的資料保護解決方案,該方案能為實體、虛擬及雲端環境提供備份與站點還原功能。透過 NAKIVO Backup & Replication, 您可以在多個平台上保護最重要的資料和應用程式,確保在任何情況下都能進行還原,並降低資料保護成本。





