排查 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 更新 Agent 本身报告的相同错误。 在WindowsUpdate.log文件中可能会找到有关错误的大多数信息。 有关如何读取WindowsUpdate.log文件的详细信息,请参阅Windows 更新日志文件。
由于缺少或损坏组件而导致扫描失败
由于组件缺失或损坏,0x80245003、0x80070514、0x8DDD0018、0x80246008、0x80200013、0x80004015、0x800A0046、0x800A01AD、0x80070424、0x800B0100和0x80248011错误。
某些问题可能是由于文件丢失或损坏或注册表项、组件注册等造成的。 一个很好的开始是运行Windows 更新故障排除程序来自动检测和修复这些问题。
确保运行最新版本的 Windows 更新 代理也是个好主意。
如果运行Windows 更新疑难解答无法解决问题,请按照以下步骤重置客户端上的Windows 更新代理数据存储:
运行以下命令停止Windows 更新服务:
net stop wuauserv
将
C:\Windows\SoftwareDistribution
文件夹重命名为C:\Windows\SoftwareDistribution.old
.运行以下命令启动Windows 更新服务:
net start wuauserv
启动软件更新扫描周期。
由于代理相关问题,扫描失败
与代理相关的问题导致错误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 更新网站的代理服务器。
与 HTTP 超时或身份验证相关的扫描失败
错误:0x80072ee2、0x8024401C、0x80244023或0x80244017(HTTP 状态 401)、0x80244018(HTTP 状态 403)
验证与 WSUS 计算机的连接。 在扫描期间,Windows 更新代理必须与 WSUS 计算机上的虚拟目录通信ClientWebService
SimpleAuthWebService
才能运行扫描。 如果客户端无法与 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)日志,确认 HTTP 错误是否从 WSUS 返回。 如果 WSUS 计算机未返回错误,则问题可能与中间防火墙或代理有关。
如果其中任一测试失败,请检查客户端上的名称解析问题。 验证是否可以解析 WSUS 计算机的 FQDN。
此外,请验证客户端上的代理设置,确保正确配置代理设置。 有关详细信息,请参阅“ 扫描失败,因为代理相关问题 ”部分。
最后,验证是否可以访问 WSUS 端口。 WSUS 可配置为使用以下任一端口:
- 80
- 443
- 8530
- 8531
若要使客户端与 WSUS 计算机通信,必须在客户端与 WSUS 计算机之间的任何防火墙上启用相应的端口。
确定 WSUS 和软件更新点使用的端口设置
在创建软件更新点站点系统角色时配置端口设置。 这些端口设置必须与 WSUS 网站使用的端口设置相同。 否则,WSUS 同步管理器不会连接到软件更新点上运行的 WSUS 计算机以请求同步。 以下过程演示如何验证 WSUS 和软件更新点使用的端口设置。
确定 IIS 6.0 中的 WSUS 端口设置
- 在 WSUS 服务器上,打开 Internet Information Services (IIS) 管理器。
- 展开 “网站”,右键单击 WSUS 服务器的网站,然后选择“ 属性”。
- 选择“网站”选项卡。
- HTTP 端口设置显示在 TCP 端口中,HTTPS 端口设置显示在 SSL 端口中。
确定 IIS 7.0 及更高版本中的 WSUS 端口设置
- 在 WSUS 服务器上,打开 Internet Information Services (IIS) 管理器。
- 展开 “站点”,右键单击 WSUS 服务器的网站,然后选择“ 编辑绑定”。
- 在 “站点绑定 ”对话框中,HTTP 和 HTTPS 端口值显示在 “端口 ”列中。
验证和配置软件更新点的端口
- 在 Configuration Manager 控制台中,转到“管理>站点配置>服务器和站点系统角色”,然后在右侧窗格中选择< SiteSystemName。>
- 在底部窗格中,右键单击“ 软件更新点 ”,然后单击“ 属性”。
- 在 “常规 ”选项卡上,指定或验证 WSUS 配置端口号。
正确验证和配置端口后,应运行以下命令来检查客户端的端口连接:
telnet SUPSERVER.CONTOSO.COM <PortNumber>
如果端口不可访问,telnet 将返回如下所示的错误。
端口 PortNumber <上无法打开与主机的连接>
此错误表明必须配置防火墙规则才能为 WSUS 服务器端口启用通信。
扫描失败,出现错误0x80072f0c
0x80072f0c转换为 A 证书的错误是完成客户端身份验证所必需的。 仅当 WSUS 计算机配置为使用 SSL 时,才会发生此错误。 作为 SSL 配置的一部分,必须将 WSUS 虚拟目录配置为使用 SSL,并且必须将其设置为忽略客户端证书。 如果 WSUS 网站或之前提到的任何虚拟目录被错误 地配置为“接受 ”或 “需要 客户端证书”,则会收到此错误。
检查 SSL 配置
在仅 HTTPS 模式下配置站点时,软件更新点会自动配置为使用 SSL。 当站点处于 HTTPS 或 HTTP 模式时,可以选择是否配置软件更新点以使用 SSL。 将软件更新点配置为使用 SSL 时,还必须将 WSUS 计算机显式配置为使用 SSL。 在配置 SSL 之前,应查看 证书要求。 并确保在软件更新点服务器上安装了服务器身份验证证书。
验证是否已为 SSL 配置软件更新点
- 在 Configuration Manager 控制台上,转到“管理>站点配置>服务器和站点系统角色”,然后在右窗格中选择< SiteSystemName。>
- 在底部窗格中,右键单击“ 软件更新点”,然后选择“ 属性”。
- 在 “常规 ”选项卡上,验证是否启用了以下选项:
要求与 WSUS 服务器进行 SSL 通信
验证是否为 SSL 配置了 WSUS 计算机
- 在站点的软件更新点上打开 WSUS 控制台。
- 在控制台树窗格中,选择“ 选项”。
- 在显示窗格中,选择“ 更新源”和“代理服务器”。
- 验证 是否选择了“同步更新信息 ”选项时使用 SSL。
将服务器身份验证证书添加到 WSUS 管理网站
- 在 WSUS 计算机上,启动 Internet Information Services (IIS) 管理器。
- 展开 “网站”,右键单击 “默认网站 ”或“WSUS 管理网站”(如果 WSUS 配置为使用自定义网站,然后选择“ 编辑绑定”。
- 选择 HTTPS 条目,然后选择“ 编辑”。
- 在 “编辑站点绑定 ”对话框中,选择服务器身份验证证书,然后选择“ 确定”。
- 在“编辑网站绑定”对话框中,选择“确定”,然后选择“关闭”。
- 退出 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 服务器位置
- 若要了解客户端如何获取 WSUS 服务器位置,请参阅 WSUS 服务器位置。 并查看客户端和管理点日志。
- 在客户端和管理点上启用详细日志记录和调试日志记录。
- 验证客户端上CcmMessaging.log中是否存在通信错误。
- 如果管理点返回空的 WSUS 位置响应,则 WSUS 的内容版本可能不匹配。 这可能是由于同步失败所致。 若要查找软件更新点的内容版本,请在 Configuration Manager 控制台中选择“监视>软件更新点同步状态”。
- 查看表中
CI_UpdateSources
WSUSServerLocations
和Update_SyncStatus
表中的数据,验证更新源唯一 ID 和内容版本是否在这些表中匹配。
合规性结果未知
- 查看客户端上的PolicyAgent.log文件,验证客户端是否正在接收策略。
- 验证软件更新同步是否在软件更新点上成功。 如果同步失败, 请排查同步问题。
- 如果WUAHandler.log文件不存在且在启动扫描周期后未创建,则问题很可能是因为以下原因之一而发生:
- 软件更新扫描策略不可用
- 客户端找不到 WSUS 服务器位置
- 验证客户端上CcmMessaging.log文件中是否存在通信错误。
- 如果扫描成功,客户端应将状态消息发送到管理点以指示更新状态。 若要了解状态消息处理的工作原理,请参阅 状态消息处理流。
其他问题
有关详细信息,请参阅 客户端软件更新扫描疑难解答。