如何使用 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 更新。對於需要對沒有圖形介面 (GUI) 的 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 此指令可讓您指定要隱藏的知識庫文章編號。以下範例示範如何將更新 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, 您可跨多平台保護最重要的資料與應用程式,確保在任何情況下都能進行還原,並降低資料保護成本。





