Windows 更新的工作原理
适用于
- Windows 10
- Windows 11
Windows 更新工作流具有四个核心功能领域:
扫描
- 业务流程协调程序计划扫描。
- 业务流程协调程序验证要下载的管理员批准和策略。
下载
- 业务流程协调程序开始下载。
- Windows 更新下载清单文件并将其提供给仲裁程序。
- 仲裁程序评估清单,并告知Windows 更新客户端下载文件。
- Windows 更新客户端下载临时文件夹中的文件。
- 仲裁程序会暂存下载的文件。
安装
- Orchestrator 开始安装。
- 仲裁程序调用安装程序来安装包。
提交
- 业务流程协调程序开始重启。
- 仲裁程序在重启前完成。
更新的工作原理
在更新过程中,Windows 更新 Orchestrator 在后台运行以扫描、下载和安装更新。 它会根据设置自动执行这些操作,并以无提示方式执行,以免中断计算机使用情况。
扫描更新
电脑上的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 更新 (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 更新引擎将每个服务视为单独的实体,即使多个服务可能包含相同的更新。
常见服务 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 更新业务流程协调程序确定哪些更新适用于计算机,它将开始下载更新(如果已选择自动下载更新的选项)。 它在后台执行操作,而不会中断设备的正常使用。
若要确保其他下载不会因为正在下载更新而受到影响或放慢速度,Windows 更新使用传递优化来下载更新并减少带宽消耗。
有关详细信息,请参阅为Windows 10更新配置传递优化。
安装更新
当更新适用时,将下载“仲裁程序”和元数据。 根据Windows 更新设置,下载完成后,仲裁程序将从设备收集详细信息,并将其与下载的元数据进行比较,以创建“操作列表”。
操作列表描述Windows 更新所需的所有文件,以及安装代理 ((如 CBS 或安装程序) 应如何处理这些文件) 。 操作列表随有效负载一起提供给安装代理以开始安装。
提交更新
配置自动安装更新的选项后,Windows 更新 Orchestrator 在大多数情况下会在安装更新后自动重启设备。 它必须重启设备,因为它可能不安全或未完全更新,直到它重新启动。 可以使用组策略设置、移动设备管理 (MDM) ,或者不建议注册表 () 配置安装Windows 10更新后设备何时重启。
有关详细信息,请参阅 在更新后管理设备重启。
反馈
提交和查看相关反馈