问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows更新的工作原理详解

创作时间:
作者:
@小白创作中心

Windows更新的工作原理详解

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/windows/deployment/update/how-windows-update-works

Windows更新是确保系统安全和功能优化的重要环节。本文将详细介绍Windows更新的工作原理,包括扫描、下载、安装和重启等核心功能领域,帮助用户更好地理解这一过程。

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

  1. 扫描

  2. 业务流程协调程序计划扫描。

  3. 业务流程协调程序验证管理员批准和下载策略。

  4. 下载

  5. 业务流程协调程序启动下载。

  6. Windows更新下载清单文件并将其提供给仲裁程序。

  7. 仲裁程序评估清单,并告知Windows更新客户端下载文件。

  8. Windows更新客户端下载临时文件夹中的文件。

  9. 仲裁程序暂存已下载的文件。

  10. 安装

  11. Orchestrator启动安装。

  12. 仲裁程序调用安装程序来安装包。

  13. 重启

  14. 业务流程协调程序启动重启。

  15. 仲裁程序在重启前完成。

在更新过程中,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更新后设备何时重启。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号