Windows 更新的工作原理

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

  1. 扫描
    1. 业务流程协调程序计划扫描。
    2. 业务流程协调程序验证管理员批准和下载策略。
  2. 下载
    1. 业务流程协调程序启动下载。
    2. Windows 更新下载清单文件并将其提供给仲裁程序。
    3. 仲裁程序评估清单,并告知Windows 更新客户端下载文件。
    4. Windows 更新客户端下载临时文件夹中的文件。
    5. 仲裁程序暂存已下载的文件。
  3. 安装
    1. Orchestrator 启动安装。
    2. 仲裁程序调用安装程序来安装包。
  4. 提交
    1. 业务流程协调程序启动重启。
    2. 仲裁程序在重启前完成。

更新的工作原理

在更新过程中,Windows 更新 Orchestrator 在后台运行以扫描、下载和安装更新。 它根据你的设置自动执行这些操作,并且以静默方式执行,这样就不会中断你的计算机使用。

扫描更新

Windows 更新扫描步骤。

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

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

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

术语 定义
更新 我们使用此术语来表示几种不同的含义,但在此上下文中,它是实际更新的代码或更改。
捆绑包更新 包含 1-N 个子更新的更新;不包含有效负载本身。
子更新 由另一个更新捆绑的叶更新;包含有效负载。
检测器更新 仅包含 IsInstalled 适用性规则且不包含有效负载的特殊更新。 用于先决条件评估。
类别更新 具有IsInstalled始终为 true 的规则的特殊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 服务MS-WUSP:客户端 Web 服务) :

  • 尝试使用 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 更新 Orchestrator 确定哪些更新适用于你的计算机,它将开始下载更新(如果你已选择自动下载更新的选项)。 它在后台执行操作,而不会中断设备的正常使用。

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

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

安装更新

Windows 更新安装步骤。

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

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

提交汇报

Windows 更新提交步骤。

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

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