Windows 更新的工作原理

适用于

  • Windows 10
  • Windows 11

Windows 更新工作流具有四个核心功能领域:

扫描

  1. 业务流程协调程序计划扫描。
  2. 业务流程协调程序验证要下载的管理员批准和策略。

下载

  1. 业务流程协调程序开始下载。
  2. Windows 更新下载清单文件并将其提供给仲裁程序。
  3. 仲裁程序评估清单,并告知Windows 更新客户端下载文件。
  4. Windows 更新客户端下载临时文件夹中的文件。
  5. 仲裁程序会暂存下载的文件。

安装

  1. Orchestrator 开始安装。
  2. 仲裁程序调用安装程序来安装包。

提交

  1. 业务流程协调程序开始重启。
  2. 仲裁程序在重启前完成。

更新的工作原理

在更新过程中,Windows 更新 Orchestrator 在后台运行以扫描、下载和安装更新。 它会根据设置自动执行这些操作,并以无提示方式执行,以免中断计算机使用情况。

扫描更新

Windows 更新扫描步骤。

电脑上的Windows 更新 Orchestrator 会随机检查 Microsoft 更新服务器或 WSUS 终结点以获取新更新。 随机化可确保Windows 更新服务器不会同时重载请求。 更新业务流程协调程序仅搜索自上次搜索更新以来添加的更新,使其能够快速高效地查找更新。

检查更新时,Windows 更新 Orchestrator 会评估更新是否适合你的设备。 它使用更新发布者定义的准则,例如,Microsoft Office包括企业组策略。

请确保熟悉与Windows 更新扫描相关的以下术语:

术语 定义
更新 我们使用此术语来表示几种不同的东西,但在此上下文中,它是实际更新的代码或更改。
捆绑更新 包含 1-N 子更新的更新;不包含有效负载本身。
子更新 由另一个更新捆绑的叶更新;包含有效负载。
检测器更新 仅包含“IsInstalled”适用性规则且不包含有效负载的特殊“更新”。 用于预备评估。
类别更新 具有始终为 true 的 IsInstalled 规则的特殊“detectoid”。 用于对更新进行分组并允许设备筛选更新。
完全扫描 使用空数据存储进行扫描。
增量扫描 使用数据存储中已缓存的先前扫描中的更新进行扫描。
联机扫描 使用网络并检查更新服务器的扫描。
脱机扫描 不使用网络的扫描,而是检查本地数据存储。 仅当以前执行过联机扫描时才有用。
CatScan 类别扫描,调用方可以指定 categoryId 以获取在 categoryId 下发布的更新。
AppCatScan 类别扫描,调用方可以指定 AppCategoryId 以获取在该 appCategoryId 下发布的应用。
软件同步 仅检查应用和操作系统) (软件更新的扫描的一部分。
驱动程序同步 仅检查驱动程序更新的扫描的一部分。 此同步是可选的,在软件同步后运行。
ProductSync 基于属性的同步,其中客户端会提前提供设备、产品和调用方属性的列表,以允许服务检查云中的适用性。

Windows 更新扫描的工作原理

Windows 更新运行扫描时执行以下操作。

启动更新扫描

当用户通过设置面板在Windows 更新中开始扫描时,将发生以下情况:

  • 扫描首先生成“ComApi”消息。 调用方 (Microsoft Defender 防病毒) 告知Windows 更新引擎扫描更新。
  • “代理”消息:对扫描进行排队,然后实际启动工作:
    • 更新由不同的 ID 标识 (“ID = 10”、“ID = 11”) 以及来自不同的线程 ID 号。

    • Windows 更新使用线程 ID 筛选来专注于一个特定任务。

      Windows 更新扫描日志 1。

代理行为

对于Windows 更新 (WU) 扫描用于更新检测的 URL ([MS-WUSP]:SimpleAuth Web 服务|Microsoft Docs,[MS-WUSP]:客户端 Web 服务|Microsoft Docs) :

  • 尝试使用 netsh 命令) (设置系统代理。

  • 如果 WUA 由于某个代理、服务或身份验证错误代码而无法访问服务,则尝试使用用户代理 (通常是登录用户) 。

    备注

    对于 Intranet WSUS 更新服务 URL,我们通过Windows 更新策略提供一个选项来选择代理行为。

对于_不_用于更新检测的Windows 更新 URL,例如下载或报告:

  • 尝试使用用户代理。
  • 如果 WUA 由于某个代理、服务或身份验证错误代码而无法访问服务,则尝试系统代理。

标识服务 ID

  • 服务 ID 指示正在扫描哪些更新源。

  • Windows 更新引擎将每个服务视为单独的实体,即使多个服务可能包含相同的更新。 Windows 更新扫描日志 2。

  • 常见服务 ID

    重要

    此处的 ServiceId 标识客户端抽象,而不是云中的任何特定服务。 不应对 serviceId 指向的服务器做出任何假设。 它完全由来自服务定位器服务的响应控制。

服务 ServiceId
未指定/默认值 Windows 更新、Microsoft 更新或 WSUS
00000000-0000-0000-0000-000000000000
Windows 更新 9482F4B4-E343-43B6-B170-9A65BC822C77
Microsoft 更新 7971f918-a847-4430-9279-4a52d1efe18d
应用商店 855E8A7C-ECB4-4CA3-B045-1DFA50104289
OS 外部测试 8B24B027-1DEE-BABB-9A95-3517DFB9C552
WSUS 或Configuration Manager 通过 ServerSelection::ssManagedServer
3DA21691-E39D-4da6-8A4B-B43877BCB1B7
脱机扫描服务 通过 IUpdateServiceManager::AddScanPackageService

查找网络故障

常见的更新失败是由网络问题引起的。 若要查找问题的根源,请执行以下操作:

  • 查找“ProtocolTalker”消息以查看客户端服务器同步网络流量。

  • “SOAP 错误”可以是客户端或服务器端问题;读取消息。

  • Windows 更新客户端使用服务定位器服务来发现 Microsoft 网络更新源的配置和终结点:Windows更新、Microsoft 更新或外部测试。

    备注

    如果搜索针对 WSUS 或Configuration Manager,则可以忽略服务定位器服务的警告消息。

  • 在仅使用 WSUS 或 Configuration Manager 的站点上,服务定位器服务可能会在防火墙被阻止。 在这种情况下,请求将失败,尽管服务无法扫描Windows 更新或 Microsoft 更新,但它仍可以扫描 WSUS 或Configuration Manager,因为它已在本地配置。 Windows 更新扫描日志 3。

下载更新

Windows 更新下载步骤。

一旦Windows 更新业务流程协调程序确定哪些更新适用于计算机,它将开始下载更新(如果已选择自动下载更新的选项)。 它在后台执行操作,而不会中断设备的正常使用。

若要确保其他下载不会因为正在下载更新而受到影响或放慢速度,Windows 更新使用传递优化来下载更新并减少带宽消耗。

有关详细信息,请参阅为Windows 10更新配置传递优化

安装更新

Windows 更新安装步骤。

当更新适用时,将下载“仲裁程序”和元数据。 根据Windows 更新设置,下载完成后,仲裁程序将从设备收集详细信息,并将其与下载的元数据进行比较,以创建“操作列表”。

操作列表描述Windows 更新所需的所有文件,以及安装代理 ((如 CBS 或安装程序) 应如何处理这些文件) 。 操作列表随有效负载一起提供给安装代理以开始安装。

提交更新

Windows 更新提交步骤。

配置自动安装更新的选项后,Windows 更新 Orchestrator 在大多数情况下会在安装更新后自动重启设备。 它必须重启设备,因为它可能不安全或未完全更新,直到它重新启动。 可以使用组策略设置、移动设备管理 (MDM) ,或者不建议注册表 () 配置安装Windows 10更新后设备何时重启。

有关详细信息,请参阅 在更新后管理设备重启