使用 WSUS 部署第三方軟件更新
本地 WSUS(Windows Server 更新服務)服務器不僅可用於部署 Microsoft 產品(Windows、Office)的更新,還可用於集中安裝和更新任何第三方軟件。
以下選項通常用於在 Windows 網絡中安裝第三方軟件: MSI 打包的應用程序可以使用 GPO、登錄腳本或單獨的產品(例如 ConfigMgr (SCCM))進行安裝。但是,您可以使用 WSUS 更新服務器在用戶計算機上安裝、更新或卸載任何第三方軟件的更新(例如,7-Zip、Adobe Reader、Java、瀏覽器、更新驅動程序或 BIOS/UEFI 固件等)。
WSUS 默認情況下不支持第三方軟件,但任何更新包/腳本都可以使用開放的 WSUS API 通過 WSUS 發布和分發。在本文中,我們將了解如何使用開源WSUS 包發布者為任何應用程序創建安裝(更新)包,將其發佈到 WSUS,批准其在域計算機上安裝,並跟踪其部署狀態。
內容:
WSUS 包發佈器的優點:
閱讀更多:在 Windows 11 中禁用自動地圖更新的 3 種方法
- WSUS 集成:允許您使用 WSUS 基礎架構和現有更新分發組;
- 您可以從 MSI/MSP 文件、EXE 文件或自定義腳本創建 WSUS 更新包;
- 允許您跟踪計算機上軟件更新安裝的結果。
我們假設您已在 Windows Server 上安裝並配置了 WSUS 更新服務器角色,安裝了 .NET Framework 3.5(或更高版本),並創建了 GPO 以將 Windows 客戶端指向 WSUS 服務器。
- 下載WSUS 包發布者來自 GitHub 的二進制存檔(https://github.com/DCourtel/Wsus_Package_Publisher/releases) 並將其解壓到 WSUS 服務器上的本地目錄;
- 跑步
Wsus Package Publisher.exe; - 連接到本地WSUS服務器;
- 第一次運行該工具時,系統將提示您創建用於簽署更新的證書。選擇工具->證書;

- 如果您沒有自己的 PKI 基礎設施,該實用程序將生成自簽名代碼簽名證書(可以使用 PowerShell 創建自簽名證書);


- 將證書導出到.CER將其歸檔並安裝在將從 WSUS 接收軟件更新的計算機上;
- 最簡單的方法是使用 GPO 將證書部署到客戶端計算機。打開域組策略管理控制台(
gpmc.msc),選擇包含 WSUS 客戶端設置的 GPO。導航到計算機配置 –> 策略 –> Windows 設置 –> 安全設置 –> 公鑰策略 –> 受信任的根證書頒發機構,並將證書導入到受信任的根證書頒發機構和值得信賴的出版商商店;

- 然後轉到計算機配置 -> 策略 -> 管理模板 -> Windows 組件 -> Windows 更新 -> 管理 Windows Server 更新服務提供的更新並啟用該選項允許來自 Intranet Microsoft 更新服務位置的簽名內容。如果要在非域計算機(工作組中)上安裝更新和程序,請在客戶端上啟用以下註冊表選項:
reg add HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate /f /v AcceptTrustedPublisherCerts /t REG_DWORD /d 1

創建自定義第三方更新包以通過 WSUS 進行部署
現在您可以創建 WSUS 將分發的程序更新(安裝)包。在此示例中,我們將在加入域的計算機上更新舊版本的 7-Zip 歸檔程序。
- 選擇更新->創建新更新;
- 從官方網站下載最新版本的7 Zip MSI安裝程序並指定其路徑;

WSUS Package Publisher 還可用於部署 EXE 文件。 MSI Wrapper 可用於將一些 EXE 安裝程序轉換為 MSI 包。 - 指定將在客戶端計算機上的 Windows 更新對話框中顯示的包名稱和描述;
- 下一步是指定 WSUS 確定此更新(程序)的標準已經安裝了在計算機上。在 7 Zip 示例中,我們將檢查
HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall7-Zip註冊表項有一個DisplayVersion參數值為23.01(這是 7Zip 的最新版本)。
此 WSUS 包規則將如下所示(添加規則 -> SZ 中的註冊表版本):<bar:RegSz Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall7-Zip" Value="DisplayVersion" Comparison="EqualTo" Data="23.01"/>然後創建一條規則以確保您安裝了 x64 Windows 版本:
<bar:Processor Architecture="9"/>

- 點擊下一個並創建另一個規則來決定是否安裝更新在這台計算機上。在此示例中,這將是相反的規則(當不存在具有指定值的註冊表值時)。您只需啟用反向規則設置中的選項;

在這篇文章中,我們使 WSUS 規則比現實生活中的規則稍微簡單一些。我們的規則將在任何計算機上安裝 7ZIP,即使它尚未在現實環境中,您應該做的第一件事是檢查您的計算機上是否安裝了其他版本的 7-ZIP。 - 點擊下一個。 WSUS Package Publisher 將創建包並將其發佈到 WSUS 服務器。


您現在可以將軟件更新包部署到 WSUS 客戶端。請注意,您必須使用 WSUS Package Publisher 控制台來管理第三方更新,因為這些包不會出現在標準 WSUS 管理控制台中。
- 在下面選擇您的更新包更新然後單擊批准;


- 選擇您想要批准程序安裝的 WSUS 客戶端組(批准安裝);詳細了解如何在 WSUS 上批准更新。


- 一段時間後,掃描客戶端計算機上的更新。客戶端計算機根據 WSUS 策略設置下載並安裝更新;
- 在客戶端檢查7-ZIP更新包是否已成功下載並安裝。運行
Get-WindowsUpdate來自 PSWindowsUpdate PowerShell 模塊的命令。

在控制台中,您可以監控客戶端計算機上的更新部署過程。選擇您的套餐並轉到報告選項卡。您可以在此處查看已安裝或更新程序的計算機數量。

因此,您可以使用 WSUS 輕鬆更新網絡上計算機上的任何第三方軟件。
