排查Configuration Manager中的软件更新扫描失败问题

本文介绍如何排查Configuration Manager中的软件更新扫描失败问题。

原始产品版本:Microsoft System Center 2012 Configuration Manager、Microsoft System Center 2012 R2 Configuration Manager
原始 KB 编号: 3090184

摘要

软件更新扫描失败的原因有多种。 大多数问题涉及客户端与软件更新点计算机之间的通信或防火墙问题。 我们将在此处介绍一些最常见的错误条件及其相关解决方法和故障排除提示。 有关Windows 更新常见错误的详细信息,请参阅Windows 更新常见错误和缓解措施

有关 Configuration Manager 中的软件更新的详细信息,请参阅软件更新简介

排查软件更新扫描失败问题时,请重点关注WUAHandler.log和WindowsUpdate.log文件。 WUAHandler 只报告Windows 更新代理报告的内容。 因此,WUAHandler.log 文件中的错误与 Windows 更新 代理本身报告的错误相同。 有关错误的大多数信息可能位于 WindowsUpdate.log 文件中。 有关如何读取 WindowsUpdate.log 文件的详细信息,请参阅Windows 更新日志文件

由于缺少或损坏组件而导致扫描失败

错误0x80245003、0x80070514、0x8DDD0018、0x80246008、0x80200013、0x80004015、0x800A0046、0x800A01AD、0x80070424、0x800B0100和0x80248011是由缺少或损坏的组件引起的。

文件或注册表项丢失或损坏、组件注册等可能会导致几个问题。 一个很好的起点是运行Windows 更新疑难解答来自动检测和修复这些问题。

确保运行最新版本的 Windows 更新 代理也是一个好主意。

如果运行Windows 更新疑难解答无法解决问题,请按照以下步骤在客户端上重置Windows 更新代理数据存储:

  1. 通过运行以下命令停止Windows 更新服务:

    net stop wuauserv
    
  2. C:\Windows\SoftwareDistribution 文件夹重命名为 C:\Windows\SoftwareDistribution.old

  3. 运行以下命令,启动Windows 更新服务:

    net start wuauserv
    
  4. 启动软件更新扫描周期。

0x80244021、0x8024401B、0x80240030和0x8024402C错误是由代理相关问题引起的。

验证客户端上的代理设置,并确保它们已正确配置。 Windows 更新代理使用 WinHTTP 扫描可用更新。 当客户端和 WSUS 计算机之间有代理服务器时,必须在客户端上正确配置代理设置,以便它们能够使用计算机的 FQDN 与 WSUS 通信。

对于代理问题,WindowsUpdate.log可能会报告类似于以下的错误:

0x80244021或 HTTP 错误 502 - 网关错误

0x8024401B或 HTTP 错误 407 - 需要代理身份验证

0x80240030 - 代理列表的格式无效

0x8024402C - 无法解析代理服务器或目标服务器名称

在大多数情况下,可以绕过本地地址的代理,因为 WSUS 计算机位于 Intranet 中。 但是,如果客户端已连接到 Internet,则必须确保代理服务器配置为启用该通信。

若要查看 WinHTTP 代理设置,请运行以下命令之一:

  • 在 Windows XP 上: proxycfg.exe
  • 在 Windows Vista 及更高版本上: netsh winhttp show proxy

在 Internet Explorer 中配置的代理设置是 WinINET 代理设置的一部分。 WinHTTP 代理设置不一定与 Internet Explorer 中配置的代理设置相同。 但是,如果在 Internet Explorer 中正确设置了代理设置,则可以从 Internet Explorer 导入代理配置。 若要从 Internet Explorer 导入代理配置,请运行以下命令之一:

  • 在 Windows XP 上: proxycfg.exe -u
  • 在 Windows Vista 及更高版本上: netsh winhttp import proxy source =ie

有关详细信息,请参阅 Windows 更新 客户端如何确定用于连接到Windows 更新网站的代理服务器

错误:0x80072ee2、0x8024401C、0x80244023或0x80244017 (HTTP 状态 401) 、0x80244018 (HTTP 状态 403)

验证与 WSUS 计算机的连接。 在扫描期间,Windows 更新 代理必须与 WSUS 计算机上的 和 SimpleAuthWebService 虚拟目录通信ClientWebService才能运行扫描。 如果客户端无法与 WSUS 计算机通信,则扫描失败。 出现此问题的原因有多种,包括:

  • 端口配置
  • 代理配置
  • 防火墙问题
  • 网络连接

首先,通过检查以下注册表项查找 WSUS 计算机的 URL:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

尝试访问 URL 以验证客户端与 WSUS 计算机之间的连接。 例如,使用的 URL 应类似于以下 URL:
http://SUPSERVER.CONTOSO.COM:8530/Selfupdate/wuident.cab

然后检查客户端是否可以访问ClientWebService虚拟目录。 URL 应类似于以下 URL:
http://SUPSERVER.CONTOSO.COM:8530/ClientWebService/wusserverversion.xml

最后,检查客户端是否可以访问SimpleAuthWebService虚拟目录。 URL 应类似于以下 URL: http://SUPSERVER.CONTOSO.COM:8530/SimpleAuthWebService/SimpleAuth.asmx

如果这些测试成功,请查看 WSUS 计算机上的 Internet Information Services (IIS) 日志,确认正在从 WSUS 返回 HTTP 错误。 如果 WSUS 计算机未返回错误,则问题可能出在中间防火墙或代理上。

如果这些测试中的任何一个失败,检查客户端上的名称解析问题。 验证是否可以解析 WSUS 计算机的 FQDN。

此外,请验证客户端上的代理设置,以确保它们已正确配置。 有关详细信息,请参阅 由于代理相关问题而导致的扫描失败 部分。

最后,验证是否可以访问 WSUS 端口。 可以将 WSUS 配置为使用以下任何端口:

  • 80
  • 443
  • 8530
  • 8531

若要使客户端与 WSUS 计算机通信,必须在客户端与 WSUS 计算机之间的任何防火墙上启用相应的端口。

确定 WSUS 和软件更新点使用的端口设置

在创建软件更新点站点系统角色时配置端口设置。 这些端口设置必须与 WSUS 网站使用的端口设置相同。 否则,WSUS 同步管理器不会连接到在软件更新点上运行的 WSUS 计算机来请求同步。 以下过程演示如何验证 WSUS 和软件更新点使用的端口设置。

确定 IIS 6.0 中的 WSUS 端口设置

  1. 在 WSUS 服务器上,打开“Internet Information Services (IIS) 管理器”。
  2. 展开 “网站”,右键单击 WSUS 服务器的网站,然后选择“ 属性”。
  3. 选择“ 网站 ”选项卡。
  4. HTTP 端口设置显示在 TCP 端口中,HTTPS 端口设置显示在 SSL 端口中。

确定 IIS 7.0 及更高版本中的 WSUS 端口设置

  1. 在 WSUS 服务器上,打开“Internet Information Services (IIS) 管理器”。
  2. 展开 “网站”,右键单击 WSUS 服务器的网站,然后选择“ 编辑绑定”。
  3. 在“ 网站绑定 ”对话框中,HTTP 和 HTTPS 端口值显示在“ 端口 ”列中。

验证并配置软件更新点的端口

  1. 在Configuration Manager控制台中,转到“管理>站点配置>服务器和站点系统角色”,然后在右窗格中选择“<SiteSystemName>”。
  2. 在底部窗格中,右键单击“ 软件更新点 ”,然后单击“ 属性”。
  3. 在“ 常规 ”选项卡上,指定或验证 WSUS 配置端口号。

验证并正确配置端口后,应通过运行以下命令从客户端检查端口连接:

telnet SUPSERVER.CONTOSO.COM <PortNumber>

如果端口不可访问,telnet 将返回类似于以下内容的错误。

无法在 PortNumber <端口上打开与主机的连接>

此错误表明必须将防火墙规则配置为启用 WSUS 服务器端口的通信。

扫描失败,出现错误0x80072f0c

错误0x80072f0c转换为 证书才能完成客户端身份验证。 仅当 WSUS 计算机配置为使用 SSL 时,才应发生此错误。 作为 SSL 配置的一部分,必须将 WSUS 虚拟目录配置为使用 SSL,并且必须将其设置为忽略客户端证书。 如果 WSUS 网站或前面提到的任何虚拟目录未正确配置为 “接受 ”或 “需要 客户端证书”,则会收到此错误。

检查 SSL 配置

仅 HTTPS 模式下配置站点时,软件更新点会自动配置为使用 SSL。 当站点处于 HTTPS 或 HTTP 模式时,可以选择是否将软件更新点配置为使用 SSL。 将软件更新点配置为使用 SSL 时,还必须将 WSUS 计算机显式配置为使用 SSL。 在配置 SSL 之前,应查看 证书要求。 并确保在软件更新点服务器上安装了服务器身份验证证书。

验证是否为 SSL 配置了软件更新点

  1. 在Configuration Manager控制台上,转到“管理>站点配置>服务器和站点系统角色”,然后在右窗格中选择“<SiteSystemName>”。
  2. 在底部窗格中,右键单击“ 软件更新点”,然后选择“ 属性”。
  3. 在“ 常规 ”选项卡上,验证是否启用了以下选项:
    要求与 WSUS 服务器进行 SSL 通信

验证是否为 WSUS 计算机配置了 SSL

  1. 在站点的软件更新点上打开 WSUS 控制台。
  2. 在控制台树窗格中,选择 “选项”。
  3. 在显示窗格中,选择“ 更新源和代理服务器”。
  4. 验证是否选择了“ 同步更新信息时使用 SSL ”选项。

将服务器身份验证证书添加到 WSUS 管理网站

  1. 在 WSUS 计算机上,启动 Internet Information Services (IIS) Manager。
  2. 展开 “网站”,如果 WSUS 配置为使用自定义网站,请右键单击“ 默认网站 ”或“WSUS 管理网站”,然后选择“ 编辑绑定”。
  3. 选择 HTTPS 条目,然后选择 “编辑”。
  4. “编辑站点绑定 ”对话框中,选择服务器身份验证证书,然后选择“ 确定”。
  5. “编辑网站绑定 ”对话框中,选择“ 确定”,然后选择“ 关闭”。
  6. 退出 IIS 管理器。

重要

确保站点系统属性中指定的 FQDN 与证书中指定的 FQDN 匹配。 如果软件更新点仅接受来自 Intranet 的连接,则 “使用者名称” 或“ 使用者可选名称” 必须包含 Intranet FQDN。 当软件更新点仅接受来自 Internet 的客户端连接时,证书仍必须同时包含 Internet FQDN 和 Intranet FQDN,因为 WCM 和 WSyncMgr 仍使用 Intranet FQDN 连接到软件更新点。 如果软件更新点同时接受来自 Internet 和 Intranet 的连接,则必须在两个名称之间使用和号分隔符 (&) 来指定 Internet FQDN 和 Intranet FQDN。

验证是否在 WSUS 计算机上配置了 SSL

有关详细信息,请参阅 在 WSUS 服务器上配置 SSL

重要

不能将整个 WSUS 网站配置为要求 SSL,因为随后必须加密发到 WSUS 站点的所有流量。 WSUS 仅加密更新元数据。 如果计算机尝试检索 HTTPS 端口上的更新文件,传输将失败。

组策略替代正确的 WSUS 配置信息

软件汇报功能会自动为Configuration Manager客户端配置本地组策略设置,以便将其配置为使用软件更新点源位置和端口号。 客户端需要服务器名称和端口号才能找到软件更新点。

如果将 Active Directory 组策略 设置应用于用于软件更新点客户端安装的计算机,则会替代本地组策略设置。 除非在 组策略 中定义的设置值与Configuration Manager (服务器名称和端口) 设置的值相同,否则Configuration Manager软件更新扫描将在客户端上失败。 在这种情况下,WUAHandler.log 文件显示以下条目:

Group policy settings were overwritten by a higher authority (Domain Controller) to: Server http://server and Policy ENABLED

若要解决此问题,客户端安装和软件更新的软件更新点必须是同一服务器。 并且必须使用正确的名称格式和端口信息在 Active Directory 组策略 设置中指定它。 例如,如果软件更新点使用默认网站,则软件更新点将为 http://server1.contoso.com:80

客户端找不到 WSUS 服务器位置

  1. 若要了解客户端如何获取 WSUS 服务器位置,请参阅 WSUS 服务器位置。 并查看客户端和管理点日志。
  2. 在客户端和管理点上启用详细日志记录和调试日志记录
  3. 验证客户端上的CcmMessaging.log中没有通信错误。
  4. 如果管理点返回空的 WSUS 位置响应,则 WSUS 的内容版本可能不匹配。 这可能是同步失败的结果。 若要查找软件更新点的内容版本,请在Configuration Manager控制台中选择“监视>软件更新点同步状态”。
  5. 查看 和 WSUSServerLocationsUpdate_SyncStatus 表中的数据CI_UpdateSources,验证“更新源唯一 ID”和“内容版本”是否在这些表中匹配。

合规性结果未知

  1. 查看客户端上的PolicyAgent.log文件,验证客户端是否正在接收策略。
  2. 验证软件更新同步在软件更新点上是否成功。 如果同步失败, 请排查同步问题
  3. 如果WUAHandler.log文件不存在且在开始扫描周期后未创建,则问题很可能由以下原因之一导致:
  4. 验证客户端上的 CcmMessaging.log 文件中没有通信错误。
  5. 如果扫描成功,客户端应将状态消息发送到管理点以指示更新状态。 若要了解状态消息处理的工作原理,请参阅 状态消息处理流

Other issues

有关详细信息,请参阅 客户端软件更新扫描疑难解答