使用 WSUS 部署第三方軟件更新

Jacki

本地 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 服務器。

  1. 下載WSUS 包發布者來自 GitHub 的二進制存檔(https://github.com/DCourtel/Wsus_Package_Publisher/releases) 並將其解壓到 WSUS 服務器上的本地目錄;
  2. 跑步Wsus Package Publisher.exe;
  3. 連接到本地WSUS服務器;
  4. 第一次運行該工具時,系統將提示您創建用於簽署更新的證書。選擇工具->證書;
  5. 如果您沒有自己的 PKI 基礎設施,該實用程序將生成自簽名代碼簽名證書(可以使用 PowerShell 創建自簽名證書);
  6. 將證書導出到.CER將其歸檔並安裝在將從 WSUS 接收軟件更新的計算機上;
  7. 最簡單的方法是使用 GPO 將證書部署到客戶端計算機。打開域組策略管理控制台(gpmc.msc),選擇包含 WSUS 客戶端設置的 GPO。導航到計算機配置 –> 策略 –> Windows 設置 –> 安全設置 –> 公鑰策略 –> 受信任的根證書頒發機構,並將證書導入到受信任的根證書頒發機構值得信賴的出版商商店;
  8. 然後轉到計算機配置 -> 策略 -> 管理模板 -> Windows 組件 -> Windows 更新 -> 管理 Windows Server 更新服務提供的更新並啟用該選項允許來自 Intranet Microsoft 更新服務位置的簽名內容。如果要在非域計算機(工作組中)上安裝更新和程序,請在客戶端上啟用以下註冊表​​選項:
    reg add HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate /f /v AcceptTrustedPublisherCerts /t REG_DWORD /d 1

創建自定義第三方更新包以通過 WSUS 進行部署

現在您可以創建 WSUS 將分發的程序更新(安裝)包。在此示例中,我們將在加入域的計算機上更新舊版本的 7-Zip 歸檔程序。

  1. 選擇更新->創建新更新;
  2. 從官方網站下載最新版本的7 Zip MSI安裝程序並指定其路徑;WSUS Package Publisher 還可用於部署 EXE 文件。 MSI Wrapper 可用於將一些 EXE 安裝程序轉換為 MSI 包。
  3. 指定將在客戶端計算機上的 Windows 更新對話框中顯示的包名稱和描述;
  4. 下一步是指定 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"/>

  5. 點擊下一個並創建另一個規則來決定是否安裝更新在這台計算機上。在此示例中,這將是相反的規則(當不存在具有指定值的註冊表值時)。您只需啟用反向規則設置中的選項;在這篇文章中,我們使 WSUS 規則比現實生活中的規則稍微簡單一些。我們的規則將在任何計算機上安裝 7ZIP,即使它尚未在現實​​環境中,您應該做的第一件事是檢查您的計算機上是否安裝了其他版本的 7-ZIP。
  6. 點擊下一個。 WSUS Package Publisher 將創建包並將其發佈到 WSUS 服務器。

您現在可以將軟件更新包部署到 WSUS 客戶端。請注意,您必須使用 WSUS Package Publisher 控制台來管理第三方更新,因為這些包不會出現在標準 WSUS 管理控制台中。

  1. 在下面選擇您的更新包更新然後單擊批准;
  2. 選擇您想要批准程序安裝的 WSUS 客戶端組(批准安裝);詳細了解如何在 WSUS 上批准更新。
  3. 一段時間後,掃描客戶端計算機上的更新。客戶端計算機根據 WSUS 策略設置下載並安裝更新;
  4. 在客戶端檢查7-ZIP更新包是否已成功下載並安裝。運行Get-WindowsUpdate來自 PSWindowsUpdate PowerShell 模塊的命令。

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

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