软件更新维护

适用于: Configuration Manager(current branch)

可以从 Configuration Manager 控制台从软件更新点组件属性计划和运行 WSUS 清理任务。 首次选择运行 WSUS 清理任务时,它将在下一次软件更新同步后运行。

计划和运行 WSUS 清理作业

通过运行以下步骤来计划 WSUS 清理作业:

  1. 在 Configuration Manager 控制台中,导航到 “管理>概述>站点配置>站点”。

  2. 选择 Configuration Manager 层次结构顶部的站点。

  3. 单击“设置”组中的“配置站点组件”,然后单击“软件更新点”打开“软件更新点组件属性”。

  4. 查看 取代行为。 根据需要修改行为。

    取代行为屏幕截图

  5. 单击“ 取代规则 ”选项卡,选择“ 运行 WSUS 清理向导”。 在版本 1806 中,选项重命名为 同步后运行 WSUS 清理

  6. 如果运行的是版本 1806) ,请单击“ 确定 ” (单击 “关闭 ”。

版本 1802 及更低版本中的 WSUS 清理行为

在 Configuration Manager 版本 1806 之前,WSUS 清理选项运行以下项:

  • 仅限顶级站点 WSUS 服务器上的 WSUS 清理向导中的 “已过期更新 ”选项。

    WSUS 过期更新清理屏幕截图

  • Configuration Manager 数据库中软件更新配置项的清理每七天进行一次,并从控制台中删除不需要的更新。

    • 如果当前部署了过期的更新,此清理不会从 Configuration Manager 控制台中删除这些更新。

仍需要对顶级 WSUS 数据库和环境中所有其他 WSUS 数据库进行其他维护。 有关详细信息和说明,请参阅 Microsoft WSUS 和 Configuration Manager SUP 维护的完整指南 博客文章。

从版本 1806 开始的 WSUS 清理行为

从版本 1806 开始,每次同步后都会出现 WSUS 清理选项,并执行以下清理项:

  • CAS 和主站点上 WSUS 服务器的 “已过期更新 ”选项。
    • 辅助站点的 WSUS 服务器不会针对过期的更新运行 WSUS 清理。
  • Configuration Manager 从其数据库中生成被取代的更新的列表。 该列表基于软件更新点组件属性中的取代行为。
    • 符合取代行为条件的更新配置项在 Configuration Manager 控制台中已过期。
    • 对于 CAS 和主站点,WSUS 中的更新将被拒绝,但对于辅助站点则拒绝更新。
  • Configuration Manager 数据库中软件更新配置项的清理每七天进行一次,并从控制台中删除不需要的更新。
    • 如果当前部署了过期的更新,此清理不会从 Configuration Manager 控制台中删除这些更新。

注意

“被取代的更新过期前等待的月份”基于被取代更新的创建日期。 例如,如果对此设置使用 2 个月,则已取代的更新将在 WSUS 中被拒绝,并在取代更新为 2 个月时在 Configuration Manager 中过期。

所有 WSUS 维护都需要在辅助站点 WSUS 数据库上手动运行。 以下 WSUS 服务器清理向导 选项不会在 CAS 和主站点上运行:

从版本 1810 开始的 WSUS 清理行为

从版本 1810 开始,可以在软件更新点组件属性中单独指定功能更新的取代规则与非功能更新。 WSUS 清理选项在每次同步后出现,并执行以下清理项:

  • CAS、主站点和辅助站点上的 WSUS 服务器的 “已过期更新 ”选项。
  • Configuration Manager 从其数据库中生成被取代的更新的列表。 该列表基于软件更新点组件属性中的取代行为。
    • 符合取代行为条件的更新配置项在 Configuration Manager 控制台中已过期。
    • WSUS 中的 CAS、主站点和辅助站点的更新被拒绝。
  • Configuration Manager 数据库中软件更新配置项的清理每七天进行一次,并从控制台中删除不需要的更新。
    • 如果当前部署了过期的更新,此清理不会从 Configuration Manager 控制台中删除这些更新。

注意

“被取代的更新过期前等待的月份”基于被取代更新的创建日期。 例如,如果对此设置使用 2 个月,则已取代的更新将在 WSUS 中被拒绝,并在取代更新为 2 个月时在 Configuration Manager 中过期。

以下 WSUS 服务器清理向导 选项不会在 CAS、主站点和辅助站点上运行:

WSUS 清理从版本 1906 开始

还有其他 WSUS 维护任务,Configuration Manager 可以运行这些任务来维护正常的软件更新点。 除了拒绝 WSUS 中的过期更新外,Configuration Manager 还可以向 WSUS 数据库添加非聚集索引,并从 WSUS 数据库中删除过时的更新。 WSUS 维护在每次同步后进行。

根据取代规则拒绝 WSUS 中过期的更新

WSUS 中的拒绝更新通过从发送到客户端的目录中删除这些更新来提高性能。 拒绝 Configuration Manager 标记为已取代的更新会进一步最大程度地减少目录并提高性能。

  1. 在 Configuration Manager 控制台中,导航到 “管理>概述>站点配置>站点”。
  2. 选择 Configuration Manager 层次结构顶部的站点。
  3. 单击“设置”组中的“ 配置站点组件 ”,然后单击“ 软件更新点 ”打开“软件更新点组件属性”。
  4. “WSUS 维护 ”选项卡中, 根据取代规则,选择“拒绝 WSUS 中的过期更新”。

将非聚集索引添加到 WSUS 数据库以提高 WSUS 清理性能

添加非聚集索引可提高 Configuration Manager 的 WSUS 清理性能。

  1. 在 Configuration Manager 控制台中,导航到 “管理>概述>站点配置>站点”。
  2. 选择 Configuration Manager 层次结构顶部的站点。
  3. 单击“设置”组中的“ 配置站点组件 ”,然后单击“ 软件更新点 ”打开“软件更新点组件属性”。
  4. “WSUS 维护 ”选项卡中,选择“ 向 WSUS 数据库添加非聚集索引”。
  5. 在 Configuration Manager 使用的每个 SUSDB 上,索引将添加到下表:
    • tbLocalizedPropertyForRevision
    • tbRevisionSupersedesUpdate

用于创建索引的 SQL Server 权限

当 WSUS 数据库位于远程 SQL Server 上时,可能需要在 SQL Server 中添加权限才能创建索引。 用于连接到 WSUS 数据库并创建索引的帐户可能会有所不同。 如果在 软件更新点属性中指定 WSUS 服务器连接帐户,请确保该连接帐户具有 SQL Server 权限。 如果未指定 WSUS 服务器连接帐户,则站点服务器的计算机帐户需要 SQL Server 权限。

  • 创建索引需要 ALTER 对表或视图具有权限。 该帐户必须是固定服务器角色或 db_ddladmindb_owner 固定数据库角色的成员sysadmin。 有关创建和索引以及权限的详细信息,请参阅 CREATE INDEX (Transact-SQL)
  • CONNECT SQL必须向帐户授予服务器权限。 有关详细信息,请参阅 GRANT Server Permissions (Transact-SQL)

注意

  • 如果 WSUS 数据库位于使用非默认端口的远程 SQL Server 上,则可能不会添加索引。 可以使用 此方案的 SQL Server 配置管理器创建服务器别名 。 添加别名并且 Configuration Manager 可以连接到 WSUS 数据库后,将添加索引。
  • 如果软件更新点位于站点服务器的远程位置,并且使用的是 Windows 内部数据库,则不会添加索引。

从 WSUS 数据库中删除过时的更新

过时的更新是 WSUS 数据库中未使用的更新和更新修订。 一般来说,一旦更新不再位于 Microsoft更新目录中 ,并且其他更新不需要它作为先决条件或依赖项,则更新被视为已过时。

  1. 在 Configuration Manager 控制台中,导航到 “管理>概述>站点配置>站点”。
  2. 选择 Configuration Manager 层次结构顶部的站点。
  3. 单击“设置”组中的“ 配置站点组件 ”,然后单击“ 软件更新点 ”打开“软件更新点组件属性”。
  4. “WSUS 维护 ”选项卡中,选择“ 从 WSUS 数据库中删除过时的更新”。
    • 在停止之前,将允许运行过时的更新删除最多 30 分钟。 它将在下一次同步后再次启动。

用于删除过时更新的 SQL Server 权限

当 WSUS 数据库位于远程 SQL Server 上时,站点服务器的计算机帐户需要以下 SQL Server 权限:

注意

如果软件更新点是远程站点服务器的,并且使用的是 Windows 内部数据库,则不会删除过时的更新。

WSUS 清理向导

从版本 1906 开始,以下 WSUS 服务器清理向导 选项不会在 CAS、主站点和辅助站点上运行:

已知问题

请考虑以下情况:

  • 你使用的是 Configuration Manager 版本 1906 或更高版本
  • 你有使用 Windows 内部数据库的远程软件更新点
  • “软件更新点组件属性”中,“ WSUS 维护 ”选项卡下有以下任何所选选项:
    • 将非聚集索引添加到 WSUS 数据库
    • 从 WSUS 数据库中删除过时的更新

在这种情况下,Configuration Manager 无法使用 Windows 内部数据库为远程软件更新点执行上述 WSUS 维护任务。 出现此问题的原因是 Windows 内部数据库不允许远程连接。 站点服务器上的 中会显示以下错误 WSyncMgr.log

Indexing Failed. Could not connect to SUSDB.
SqlException thrown while connect to SUSDB in Server: <SUP.CONTOSO.COM>. Error Message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
...
Could not Delete Obselete Updates because ConfigManager could not connect to SUSDB: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) UpdateServer: <SUP.CONTOSO.COM>

若要解决此问题,可以使用 Windows 内部数据库自动执行远程软件更新点的 WSUS 维护。 有关详细信息和详细步骤,请参阅 Microsoft WSUS 和 Configuration Manager SUP 维护的完整指南

更新清理日志条目

可以通过查看以下条目的wsyncmgr.log来验证此清理:

  • 看到此日志条目时,WSUS 中被取代的更新的拒绝将完成: Cleanup processed <number> total updates and declined <number>
  • 看到此条目时,WSUS 清理正在启动: Calling WSUS Cleanup.
  • 当你看到此条目时,已完成对过期更新的 WSUS 清理: Successfully completed WSUS Cleanup.
  • 看到此项时,正在启动 Configuration Manager 过期更新配置项目清理: Deleting old expired updates...
  • 看到此项时,“Configuration Manager 过期更新”配置项清理已完成: Deleted <number> expired updates total