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