Windows 更新日志文件
下表介绍了 Windows 更新创建的日志文件。
日志文件 | 位置 | 描述 | 使用时间 |
---|---|---|---|
windowsupdate.log | C:\Windows\Logs\WindowsUpdate | 从 Windows 8.1 开始一直到 Windows 10,Windows 更新客户端使用 Windows 事件跟踪 (ETW) 来生成诊断日志。 | 如果在运行 Windows 更新 时收到错误消息,则可以使用Windowsupdate.log日志文件中包含的信息来排查问题。 |
UpdateSessionOrchestration.etl | C:\ProgramData\USOShared\Logs | 从Windows 10开始,更新 Orchestrator 服务负责从Windows 更新下载和安装各种更新类型的顺序。 还会将事件记录到这些 etl 文件中。 |
|
NotificationUxBroker.etl | C:\ProgramData\USOShared\Logs | 启动 Windows 10 时,NotificationUxBroker.exe 触发通知吐司或横幅。 | 当你想要检查通知是否已触发时。 |
CBS.log | %systemroot%\Logs\CBS | 此日志提供对服务堆栈中的更新安装部分的见解。 | 对与 Windows 更新安装相关的问题进行故障排除。 |
生成 WindowsUpdate.log
若要将 Windows 更新跟踪文件(.etl 文件)合并并转换到一个可读的 WindowsUpdate.log 文件中,请参阅 Get-WindowsUpdateLog。
注意
运行 Get-WindowsUpdateLog cmdlet 时,会创建 WindowsUpdate.log 文件的副本作为静态日志文件。 它不会作为旧的 WindowsUpate.log 进行更新,除非再次运行 Get-WindowsUpdateLog。
Windows 更新日志组件
Windows 更新引擎具有不同的组件名称。 下面是 WindowsUpdate.log 文件中出现的一些最常见的组件:
- AGENT - Windows 更新代理
- AU - 自动更新正在执行此任务
- AUCLNT - AU 与已登录用户之间的交互
- CDM - 设备管理器
- CMPRESS - 压缩代理
- COMAPI - Windows 更新 API
- DRIVER - 设备驱动程序信息
- DTASTOR - 处理数据库事务
- EEHNDLER - 用于评估更新适用性的表达式处理程序
- HANDLER - 管理更新安装程序
- MISC - 常规服务信息
- OFFLSNC - 在无网络连接的情况下检测可用的更新
- PARSER - 分析表达式信息
- PT - 将更新信息同步到本地数据存储
- REPORT - 收集报告信息
- SERVICE - 启动/关闭自动更新服务
- 安装程序 - 安装新版本的 Windows 更新 客户端(如果可用)
- SHUTDWN - 关机时安装功能
- WUREDIR - Windows 更新重定向程序文件
- WUWEB - Windows 更新 ActiveX 控件
- ProtocolTalker - 客户端-服务器同步
- DownloadManager - 创建和监视有效负载下载
- 处理程序、安装程序 - 安装程序处理程序 (CBS 等)
- EEHandler - 评估更新适用性规则
- DataStore - 在本地缓存更新数据
- IdleTimer - 跟踪活动调用,停止服务
注意
查找特定区域中的问题时,许多组件日志消息非常有用。 但是,如果不通过筛选排除不相关的组件(以便可以专注于重要的内容),这些消息可能毫无用处。
Windows 更新日志结构
Windows 更新日志结构分为四个主要标识:
- 时间戳
- 进程 ID 和线程 ID
- 组件名称
- 更新标识符
- 更新 ID 和修订号
- 修订 ID
- 本地 ID
- 不一致的术语
以下各部分将讨论 WindowsUpdate.log 的结构。
时间戳
时间戳表示发生日志记录的时间。
- 消息通常按时间顺序排列,但可能存在例外情况。
- 同步过程中的暂停可能表示有网络问题,即使扫描成功也是如此。
- 靠近扫描结束时的长停顿可能表示有取代链问题。
进程 ID 和线程 ID
进程 ID 和线程 ID 是随机的,可能因日志而异,甚至在同一日志中因服务会话而已。
- 前四位数字(以十六进制为单位)是进程 ID。
- 接下来的四位数字(以十六进制为单位)是线程 ID。
- 每个组件(如 USO、Windows 更新引擎、COM API 调用程序和 Windows 更新安装程序处理程序)都具有其自己的进程 ID。
组件名称
请搜索并识别与 ID 相关联的组件。 Windows 更新引擎的不同部分具有不同的组件名称。 一些组件如下:
- ProtocolTalker - 客户端-服务器同步
- DownloadManager - 创建和监视有效负载下载
- Handler、Setup - 安装程序处理程序(CBS 等)
- EEHandler - 评估更新适用性规则
- DataStore - 在本地缓存更新数据
- IdleTimer - 跟踪活动调用,停止服务
更新标识符
以下项是更新标识符:
更新 ID 和修订号
同一更新在不同上下文中有不同的标识符。 了解标识符的模式非常重要。
- 更新 ID:上一屏幕截图中指示的 GUID (,) 发布时分配给给定更新
- 修订号:每次在服务中修改和重新发布给定更新(具有给定更新 ID)时都会递增的数字
- 不同更新(不是唯一的标识符)之间可重用修订号。
- 更新 ID 和修订号通常一起显示为“{GUID}.revision”。
修订 ID
- 修订 ID (不会将此值与“修订号”混淆,) 是最初在给定服务上发布或修改更新时颁发的序列号。
- 修订的现有更新保留相同的更新 ID (GUID) ,其修订号 (例如从 100 增加到 101) ,但获取与以前的 ID 无关的新修订 ID。
- 修订 ID 对于给定的更新源是唯一的,但在多个源之间并不唯一。
- 同一更新修订版本在 Windows 更新和 WSUS 上可能具有不同的修订 ID。
- 同一修订 ID 可能表示 Windows 更新和 WSUS 上的不同更新。
本地 ID
- 本地 ID 是从服务接收更新时由给定Windows 更新客户端颁发的序列号。
- 通常在调试日志中看到,尤其在涉及本地缓存以获取更新信息(数据存储)时
- 不同的客户端电脑将不同的本地 ID 分配给同一更新
- 可通过获取客户端的 %WINDIR%\SoftwareDistribution\Datastore\Datastore.edb 文件来查找客户端所使用的本地 ID
不一致的术语
有时,日志会使用不一致的术语。 例如,InstalledNonLeafUpdateIDs 列表实际上包含修订 ID,而不是更新 ID。
按窗体和上下文识别 ID:
- GUID 是更新 ID
- 更新 ID 旁显示的小整数是修订号
- 大整数通常是修订 ID
- 小整数 (特别是在数据存储) 可以是本地
使用 SetupDiag 工具分析 Windows 安装程序日志文件
SetupDiag 是一种诊断工具,可用于分析与 Windows 更新安装有关的日志。 有关详细信息,请参阅 SetupDiag。