如何使用PowerShell自动化Windows更新:简要概述

补丁管理是IT基础架构管理中至关重要的一部分,就像Windows工作站备份一样。通过正确的补丁管理解决方案,您可以通过测试或安装最新的软件更新和补丁来增强系统。补丁被视为全面软件发布之间现有问题的临时修复措施。如果能有效地进行补丁管理,您可以迅速解决系统的漏洞并减轻任何潜在威胁。

Windows提供了自己的补丁管理解决方案- Windows Update。然而,许多IT管理员仍然认为补丁管理过程过于复杂和耗时。此外,系统更新可能会影响您的生产工作流程,因为它们经常在工作时间自动开始。通过PowerShell cmdlet,您可以自动化Windows更新,节省时间和精力。

这篇博客文章介绍了如何使用PowerShell安装Windows更新,并包括一份有用的PowerShell命令列表,以自动化补丁管理过程。打补丁可以降低系统受到错误或漏洞的风险。

PSWindowsUpdate是什么?

為了使Windows補丁管理流程順暢且簡單,您可以使用Michal Gajda開發的PSWindowsUpdate模塊。該模塊是公開可用的,並且可以從PowerShell Gallery免費下載。主要的先決條件是計算機需要運行從Vista或Windows Server 2008開始的Windows OS版本。此外,您需要有PowerShell 2.0或更高版本。

使用PSWindowsUpdate,您可以識別您的計算機是否有任何可用的Windows更新。此外,該模塊允許您跨多個Windows服務器和工作站集中管理Windows更新。這樣,您可以遠程控制安裝哪些更新、移除哪些更新或隱藏哪些更新。

如何使用PowerShell自動化Windows更新

下面,我們將概述PSWindowsUpdate配置過程,包括如何下載和安裝該模塊,以及如何檢查可以幫助您自動化Windows更新的命令。

如何安裝PSWindowsUpdate

為了有效地自動化Windows補丁管理,您首先需要在您的計算機上安裝PSWindowsUpdate模塊。為此,打開一個提升權限的PowerShell提示符並輸入以下命令:

Install-Module -Name PSWindowsUpdate

執行此命令後,您將被問及是否要從PSGallery安裝指定的模組。如果您希望繼續並接受所有更改,請選擇

安裝完模組後,您需要確保可以遠程訪問其他計算機。這樣,您應該能夠在遠程計算機上安裝Windows更新,從而節省時間和精力。為了使PSWindowsUpdate模組與遠程機器一起工作,您需要將該模組保存到您的計算機上並在網絡上共享。

如果其他服務器能夠導入和部署此模組,您可以設置自動化的Windows補丁管理。為此,您應該運行以下命令:

Save-Module -Name PSWindowsUpdate -Path

在這裡,您需要通過指定PSWindowsUpdate模組的存儲位置來定義–Path參數。

如何使用PSWindowsUpdate

下一步,您將學習如何使用此模組來使用PowerShell cmdlets自動化Windows更新。這對於需要在沒有GUI的Server Core機器上執行補丁管理流程的IT管理員來說是一個巨大的優勢。通過使用這些cmdlets,您可以最大程度地減少管理複雜性,使流程更加簡單和少出錯。

要获取可用的Windows更新的完整列表,请运行以下PowerShell命令:

Get-WindowsUpdate

您应该在屏幕上看到下面的输出:

有了这些信息,您就可以确定哪些软件或应用程序需要更新。之后,您可以通过输入以下命令来安装所有更新。此外,通过添加–AutoReboot 参数,可以确保系统在更新安装完成后自动重启。

Get-WUInstall -AcceptAll –AutoReboot

如果您不希望立即重新启动(以免中断生产工作流程),可以运行以下命令:

Get-WUInstall -AcceptAll –IgnoreReboot

在屏幕上,您可以查看补丁管理过程的进展情况,以及更新的完整列表及其当前状态。

安装过程完成后,您将在PowerShell控制台中看到以下消息:‘Reboot is required but do it manually’. 因此,您仍需要重新启动系统,但您可以在最适合您日程安排的时间进行。

如果您只想下载特定的更新,可以将–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 更新、DCat Flighting Prod 等)。

5. 您可以隐藏列表中的某些更新,以避免在计算机上安装它们。为此,您可以运行 Hide-WindowsUpdate 命令,并指定要隐藏的 KB 文章的 ID。以下示例演示了如何从列表中隐藏 KB2267602 更新:

$HideList = "KB2267602"

Hide-WindowsUpdate -KBArticleID $HideList –Hide

在进行任何更改之前,系统将要求您确认选择。输入 Y 隐藏该 KB 文章。

如果您希望获取已隐藏更新的列表,可以运行以下命令:

Get-WindowsUpdate –IsHidden

在狀態列中,您可以看到字母 H 表示更新已成功隱藏。因此,下次運行 Get-WUInstall 命令時,所選更新將自動從可用更新列表中排除。

如果您想要還原更改,可以在PowerShell控制台中使用以下cmdlet:

Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false

再次確認更改時,您將被要求輸入 Y。

正如您所見,字母 H 不再包含在更新狀態中,這意味著此Windows更新不再隱藏,並且可以在您的計算機上下載。

6. 您可用的另一個配置選項是刪除已在您的計算機上安裝的更新。為此,您可以使用 Remove-WindowsUpdate cmdlet 並輸入您希望從計算機中卸載的KB文章的ID。例如:

Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot

通過添加 –IgnoreReboot 參數,您確保計算機不會自動重新啟動。更新已卸載後,您可以稍後重新啟動計算機。

7. 最後但並非最不重要的是,您可以使用Get-WUList cmdlet在遠程機器上掃描可用的Windows更新。

Get-WUList –ComputerName Server5

要使此cmdlet正常工作,您還需要在遠程計算機上安裝PSWindowsUpdate模塊。這樣,您就可以從單個控制面板自動執行多台機器的Windows更新。使用PSWindowsUpdate,補丁管理過程變得簡單高效。

此外,您還可以減少IT管理員在系統打補丁期間可能遇到的管理負擔。

總結

PSWindowsUpdate模塊的開發旨在使補丁管理過程更加簡單高效。通過自動安裝更新,您可以確保系統定期更新,從而最大限度地減少系統故障和安全漏洞的風險。補丁主要用於解決程序中發現的問題或漏洞。然而,常規的補丁管理無法確保對整個生產環境的全面保護。

為此,您需要使用一個全面的數據保護解決方案,該解決方案為物理、虛擬和雲環境提供備份和站點恢復功能。使用NAKIVO Backup & Replication,您可以在多個平台上保護最關鍵的數據和應用程序,確保在任何情況下都能進行恢復,並降低數據保護成本。

Source:
https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/