Windows 更新问题疑难解答

             适用于:Windows 10

试用我们的虚拟代理 - 它可以帮助你快速识别和修复常见的Windows 更新问题

如果在使用 Windows 更新 时遇到问题,请从以下步骤开始:

  1. 运行内置Windows 更新疑难解答以修复常见问题。 导航到“设置更新>& 安全>故障排除>Windows 更新”。

  2. 从 Microsoft 更新目录中安装与 Windows 版本匹配的最新服务堆栈更新。 有关维护堆栈更新的详细信息,请参阅 维护堆栈更新

  3. 请确保安装最新的 Windows 更新、累积更新和汇总更新。 若要验证更新状态,请参阅系统的相应更新历史记录:

高级用户还可以参考Windows 更新生成的日志进行进一步调查。

使用 Windows 更新 时,可能会遇到以下情况。

为什么我提供了较旧的更新?

提供给设备的更新取决于多个因素。 下面是一些最常见的属性:

  • 操作系统内部版本
  • OS Branch
  • OS 区域设置
  • OS 体系结构
  • 设备更新管理配置

如果你提供的更新不是最新的可用更新,则可能是因为你的设备由 WSUS 服务器管理,并且你正在获得该服务器上的可用更新。 如果你的设备是部署组的一部分,则管理员也可能有意减慢更新的推出速度。 由于部署速度缓慢,并且从一开始就进行了度量,因此所有设备都不会在同一天收到更新。

我的设备在扫描时已冻结。 为什么?

设置 UI 与更新业务流程协调程序服务通信,而更新业务流程协调程序服务又与 Windows 更新 服务通信。 如果这些服务意外停止,你可能会看到此行为。 在这种情况下,请执行以下步骤:

  1. 关闭“设置”应用并重新打开它。

  2. 如果以下服务正在运行,请启动 Services.msc 并检查:

    • 更新状态业务流程协调程序
    • Windows 更新

不提供功能更新,而其他更新

运行 Windows 10 版本 1709 到 Windows 10 版本 1803 且配置为从 Windows 更新 ((包括 Windows 更新 for Business) )更新的设备能够安装服务和定义更新,但永远不会提供功能更新。

检查WindowsUpdate.log会显示以下错误:

YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           * START * Finding updates CallerId = Update;taskhostw  Id = 25
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Online = Yes; Interactive = No; AllowCachedResults = No; Ignore download priority = No
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           ServiceID = {855E8A7C-ECB4-4CA3-B045-1DFA50104289} Third party service
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Search Scope = {Current User}
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Caller SID for Applicability: S-1-12-1-2933642503-1247987907-1399130510-4207851353
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            Got 855E8A7C-ECB4-4CA3-B045-1DFA50104289 redir Client/Server URL: https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx""
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            Token Requested with 0 category IDs.
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            GetUserTickets: No user tickets found. Returning WU_E_NO_USERTOKEN.
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::GetDeviceTickets:570]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::GetDeviceTickets:570]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetDeviceTickets
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::AddTickets:1092]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [CUpdateEndpointProvider::GenerateSecurityTokenWithAuthTickets:1587]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetAgentTokenFromServer
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetAgentToken
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] EP:Call to GetEndpointToken
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Failed to obtain service 855E8A7C-ECB4-4CA3-B045-1DFA50104289 plugin Client/Server auth token of type 0x00000001
YYYY/MM/DD HH:mm:ss:SSS PID  TID  ProtocolTalker  *FAILED* [80070426] Method failed [CAgentProtocolTalkerContext::DetermineServiceEndpoint:377]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  ProtocolTalker  *FAILED* [80070426] Initialization failed for Protocol Talker Context
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Exit code = 0x80070426
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           * END * Finding updates CallerId = Update;taskhostw  Id = 25

0x80070426错误代码转换为:

ERROR_SERVICE_NOT_ACTIVE - # The service has not been started.

Microsoft 帐户登录助手 (MSA 或 wlidsvc) 是有关服务。 DCAT 外部测试服务 (ServiceId:855E8A7C-ECB4-4CA3-B045-1DFA50104289) 依赖于 MSA 获取设备的全局设备 ID。 如果不运行 MSA 服务,客户端将不会生成和发送全局设备 ID,并且对功能更新的搜索永远不会成功完成。

若要解决此问题,请将 MSA 服务重置为默认 StartType“手动”。

Windows 更新将 WinHttp 与部分范围请求 (RFC 7233) 配合使用,从Windows 更新服务器或本地 WSUS 服务器下载更新和应用程序。 因此,网络上的代理服务器必须支持 HTTP RANGE 请求。 如果在 Internet Explorer 中配置了代理 (用户级别) ,但在 WinHTTP (系统级别) 中未配置代理,则与 Windows 更新 的连接将失败。

若要解决此问题,请使用以下 netsh 命令在 WinHTTP 中配置代理:

netsh winhttp set proxy ProxyServerName:PortNumber 

注意

还可以使用以下命令从 Internet Explorer 导入代理设置: netsh winhttp import proxy source=ie

如果通过代理服务器下载失败并出现0x80d05001 DO_E_HTTP_BLOCKSIZE_MISMATCH错误,或者如果在下载更新时注意到 CPU 使用率过高,检查代理配置以允许 HTTP RANGE 请求运行。

可以选择应用规则以允许以下 URL 的 HTTP RANGE 请求:

  • *.download.windowsupdate.com
  • *.dl.delivery.mp.microsoft.com
  • *.delivery.mp.microsoft.com

如果不能允许 RANGE 请求,则下载的内容将超过更新 (所需的内容,因为增量修补) 不起作用。

更新不适用于你的计算机

下表介绍了此错误的最常见原因:

原因 解释 解决方案
更新被取代 发布组件更新后,更新的组件将取代系统上已有的旧组件。 发生此问题时,以前的更新被标记为已取代。 如果尝试安装的更新已在系统上具有较新版本的有效负载,则可能会收到此错误消息。 检查要安装的包是否包含较新版本的二进制文件。 或者,检查包被另一个新包取代。
已安装更新 如果尝试安装的更新以前是安装(例如,由另一个具有相同有效负载的更新安装的),则可能会遇到此错误消息。 验证你尝试安装的包之前是否未安装。
体系结构更新错误 汇报由 CPU 体系结构发布。 如果尝试安装的更新与 CPU 的体系结构不匹配,可能会遇到此错误消息。 验证你尝试安装的包是否与你正在使用的 Windows 版本匹配。 Windows 版本信息可在每次更新的文章的“适用范围”部分找到。 例如,无法在基于 R2 的Windows Server 2012计算机上安装仅限Windows Server 2012更新。
此外,请验证要安装的包是否与正在使用的 Windows 版本的处理器体系结构匹配。 例如,基于 x86 的更新不能安装在基于 x64 的 Windows 安装上。
缺少先决条件更新 某些更新需要先进行先决条件更新,然后才能将其应用到系统。 如果缺少先决条件更新,可能会遇到此错误消息。 例如,在安装 2014 年 4 月之后发布的许多更新之前,必须在 Windows 8.1 和 Windows Server 2012 R2 计算机上安装 KB 2919355。 请查看 Microsoft 知识库 (知识库) 中有关包的相关文章,确保已安装必备组件更新。 例如,如果在 Windows 8.1 或 Windows Server 2012 R2 上遇到错误消息,则可能必须安装 2014 年 4 月更新2919355作为先决条件,并安装一个或多个必备服务更新 (KB 2919442 和 KB 3173424) 。
若要确定是否安装了这些先决条件更新,请运行以下 PowerShell 命令:
get-hotfix KB3173424,KB2919355, KB2919442.
如果安装了更新,命令将在输出的 部分中返回安装日期 InstalledOn

Windows 更新日志中可能出现的错误:

DownloadManager    Error 0x800706d9 occurred while downloading update; notifying dependent calls. 

[DownloadManager] BITS job {A4AC06DD-D6E6-4420-8720-7407734FDAF2} hit a transient error, updateId = {D053C08A-6250-4C43-A111-56C5198FE142}.200 <NULL>, error = 0x800706D9 

DownloadManager [0]12F4.1FE8::09/29/2017-13:45:08.530 [agent]DO job {C6E2F6DC-5B78-4608-B6F1-0678C23614BD} hit a transient error, updateId = 5537BD35-BB74-40B2-A8C3-B696D3C97CBA.201 <NULL>, error = 0x80D0000A 

转到 Services.msc 并确保已启用 Windows 防火墙服务。 Microsoft 不支持停止与高级安全 Windows 防火墙关联的服务。 有关详细信息,请参阅 我需要禁用 Windows 防火墙

配置冲突策略时出现的问题

Windows 更新提供了一系列配置策略,用于控制托管环境中Windows 更新服务的行为。 虽然这些策略允许你在精细级别配置设置,但错误配置或设置冲突策略可能会导致意外行为。

有关详细信息,请参阅如何使用组策略或注册表设置配置自动更新

设备无法访问更新文件

确保设备可以通过防火墙访问必要的Windows 更新终结点。 例如,对于 Windows 10 版本 2004,以下协议必须能够访问这些各自的终结点:

协议 端点 URL
TLS 1.2 *.prod.do.dsp.mp.microsoft.com
HTTP emdl.ws.microsoft.com
HTTP *.dl.delivery.mp.microsoft.com
HTTP *.windowsupdate.com
HTTPS *.delivery.mp.microsoft.com
TLS 1.2 *.update.microsoft.com
TLS 1.2 tsfe.trafficshaping.dsp.mp.microsoft.com

注意

请确保不要对指定 HTTP 的终结点使用 HTTPS,反之亦然。 连接将失败。

特定终结点可能因 Windows 客户端版本而异。 例如,请参阅 Windows 10 2004 企业连接终结点。 有关其他 Windows 客户端版本的类似文章,请参阅附近的目录。

汇报不是从 WSUS 或Configuration Manager) (Intranet 终结点下载

Windows 客户端设备可以从各种源接收更新,包括联机Windows 更新、Windows Server Update Services服务器等。 若要确定当前在设备上使用的 Windows 汇报的源,请执行以下步骤:

  1. 以管理员身份启动Windows PowerShell。

  2. 运行以下 cmdlet:

    
    $MUSM = New-Object -ComObject "Microsoft.Update.ServiceManager"
    
  3. 运行以下 cmdlet:

    $MUSM.Services
    

检查输出中的 Name 和 OffersWindowsUPdates 参数,你可以根据此表进行解释。

输出 含义
- 名称:Microsoft 更新
-OffersWindowsUpdates: True
- 更新源是 Microsoft 更新,这意味着还可以提供操作系统以外的其他 Microsoft 产品的更新。
- 指示客户端配置为接收所有 Microsoft 产品 (Office 等的更新 )
- 名称:DCat 外部测试版 Prod
- OffersWindowsUpdates: True
- 从 Windows 10 版本 1709 开始,功能更新始终通过 DCAT 服务提供。
- 指示客户端配置为从Windows 更新接收功能更新。
- 名称:Windows 应用商店 (DCat Prod)
- OffersWindowsUpdates: False
-更新源是适用于应用商店应用的预览体验成员汇报。
- 指示客户端不会接收或未配置为接收这些更新。
- 名称:Windows Server 更新服务
- OffersWindowsUpdates: True
- 源是 Windows Server 汇报 Services 服务器。
- 客户端配置为从 WSUS 接收更新。
- 名称:Windows 更新
- OffersWindowsUpdates: True
- 源为Windows 更新。
- 客户端配置为从 Windows 更新 Online 接收更新。

环境中的设置不正确

在此示例中,根据通过注册表设置组策略,系统将配置为使用 WSUS 下载更新, (记下第二行) :

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] 
"UseWUServer"=dword:00000001

从Windows 更新日志:

2018-08-06 09:33:31:085  480 1118 Agent ** START **  Agent: Finding updates [CallerId = OperationalInsight  Id = 49] 
2018-08-06 09:33:31:085  480 1118 Agent ********* 
2018-08-06 09:33:31:085  480 1118 Agent   * Include potentially superseded updates 
2018-08-06 09:33:31:085  480 1118 Agent   * Online = No; Ignore download priority = No 
2018-08-06 09:33:31:085  480 1118 Agent   * Criteria = "IsHidden = 0 AND DeploymentAction=*" 
2018-08-06 09:33:31:085  480 1118 Agent   * ServiceID = {00000000-0000-0000-0000-000000000000} Third party service 
2018-08-06 09:33:31:085  480 1118 Agent   * Search Scope = {Machine} 
2018-08-06 09:33:32:554  480 1118 Agent   * Found 83 updates and 83 categories in search; evaluated appl. rules of 517 out of 1473 deployed entities 
2018-08-06 09:33:32:554  480 1118 Agent ********* 
2018-08-06 09:33:32:554  480 1118 Agent **  END  **  Agent: Finding updates [CallerId = OperationalInsight  Id = 49] 

在上面的日志代码片段中 Criteria = "IsHidden = 0 AND DeploymentAction=*",我们看到 。 “*”表示未从服务器指定任何内容。 因此,会进行扫描,但无法下载或安装到代理。 因此,它只需扫描更新并提供结果。

如以下日志所示,自动更新会运行扫描,但未发现任何已批准的更新。 因此,它报告没有要安装或下载的更新。 这是由于配置不正确。 WSUS 端应批准Windows 更新的更新,以便根据策略提取更新并在指定时间安装更新。 由于此方案不包括Configuration Manager,因此无法安装未经批准的更新。 你期望操作见解代理执行扫描并自动触发下载和安装,但此配置不会发生这种情况。

2018-08-06 10:58:45:992  480 5d8 Agent ** START **  Agent: Finding updates [CallerId = AutomaticUpdates  Id = 57] 
2018-08-06 10:58:45:992  480 5d8 Agent ********* 
2018-08-06 10:58:45:992  480 5d8 Agent   * Online = Yes; Ignore download priority = No 
2018-08-06 10:58:45:992  480 5d8 Agent   * Criteria = "IsInstalled=0 and DeploymentAction='Installation' or IsPresent=1 and DeploymentAction='Uninstallation' or IsInstalled=1 and DeploymentAction='Installation' and RebootRequired=1 or IsInstalled=0 and DeploymentAction='Uninstallation' and RebootRequired=1" 
   
2018-08-06 10:58:46:617  480 5d8 PT   + SyncUpdates round trips: 2 
2018-08-06 10:58:47:383  480 5d8 Agent   * Found 0 updates and 83 categories in search; evaluated appl. rules of 617 out of 1473 deployed entities 
2018-08-06 10:58:47:383  480 5d8 Agent Reporting status event with 0 installable, 83 installed,  0 installed pending, 0 failed and 0 downloaded updates 
2018-08-06 10:58:47:383  480 5d8 Agent ********* 
2018-08-06 10:58:47:383  480 5d8 Agent **  END  **  Agent: Finding updates [CallerId = AutomaticUpdates  Id = 57] 

按Windows 更新在 Windows 客户端上使用高带宽

用户可能会看到 Windows 正在消耗系统上下文下不同办公室中的所有带宽。 此行为是设计使然。 可能消耗带宽的组件扩展到Windows 更新组件之外。

以下组策略可帮助缓解这种情况:

连接到 Internet 的其他组件:

负载过重或网络拥塞导致的暂时性错误

用户可能会从 Windows 更新 收到以下错误。 这些错误是暂时性错误,在服务负载过重或网络拥堵时发生。 用户无需执行任何操作,因为设备稍后将重试该操作。

错误代码 错误值 详细信息
WU_S_SEARCH_LOAD_SHEDDING 0x248001 搜索操作已成功完成,但一个或多个服务正在减轻负载。
WU_E_PT_LOAD_SHEDDING 0x8024402d 服务器正在卸载负载。

在这些情况下,以编程方式调用 Windows 更新 代理 API 以检索搜索操作结果的用户将获得 orcFailedorcSucceededWithErrors。 稍后重试操作应会成功。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。