Windows更新的工作原理详解
Windows更新的工作原理详解
Windows更新是确保系统安全和功能优化的重要环节。本文将详细介绍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更新或WSUS00000000-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::ssManagedServer3DA21691-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更新设置,下载完成后,仲裁程序将从设备收集详细信息,并将其与下载的元数据进行比较,以创建“操作列表”。
操作列表描述了Windows更新所需的所有文件,以及安装代理(如CBS或安装程序)应对其执行的操作。操作列表随有效负载一起提供给安装代理以开始安装。
提交汇报
配置自动安装更新的选项后,在大多数情况下,Windows更新Orchestrator会在安装更新后自动重启设备。它必须重启设备,因为它可能不安全或未完全更新,直到重启。你可以使用组策略设置、移动设备管理(MDM),或注册表(不建议)配置安装Windows 10更新后设备何时重启。