使用 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 轻松更新网络上计算机上的任何第三方软件。