软件更新维护

适用于: 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 中被拒绝,并在Configuration Manager取代更新为 2 个月时过期。

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

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

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

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

注意

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

以下 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