Windows 更新日志文件

适用于:Windows 10

下表介绍了 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 - 启动/关闭自动更新服务
  • SETUP - 安装新版本的 Windows 更新客户端(如果可用)
  • SHUTDWN - 关机时安装功能
  • WUREDIR - Windows 更新重定向程序文件
  • WUWEB - Windows 更新 ActiveX 控件
  • ProtocolTalker - 客户端-服务器同步
  • DownloadManager - 创建和监视有效负载下载
  • Handler、Setup - 安装程序处理程序(CBS 等)
  • EEHandler - 评估更新适用性规则
  • DataStore - 在本地缓存更新数据
  • IdleTimer - 跟踪活动调用,停止服务

备注

查找特定区域中的问题时,许多组件日志消息非常有用。 但是,如果不通过筛选排除不相关的组件(以便可以专注于重要的内容),这些消息可能毫无用处。

Windows 更新日志结构

Windows 更新日志结构分为四个主要标识:

  • 时间戳
  • 进程 ID 和线程 ID
  • 组件名称
  • 更新标识符
    • 更新 ID 和修订号
    • 修订 ID
    • 本地 ID
    • 不一致的术语

以下各部分将讨论 WindowsUpdate.log 的结构。

时间戳

时间戳表示发生日志记录的时间。

  • 消息通常按时间顺序排列,但可能存在例外情况。
  • 同步过程中的暂停可能表示有网络问题,即使扫描成功也是如此。
  • 靠近扫描结束时的长停顿可能表示有取代链问题。
    Windows 更新时间戳。

进程 ID 和线程 ID

进程 ID 和线程 ID 是随机的,可能因日志而异,甚至在同一日志中因服务会话而已。

  • 前四个十六进制数字是进程 ID。
  • 接下来的四个十六进制数字是线程 ID。
  • 每个组件(如 USO、Windows 更新引擎、COM API 调用程序和 Windows 更新安装程序处理程序)都具有其自己的进程 ID。
    Windows 更新进程和线程 ID。

组件名称

请搜索并识别与 ID 相关联的组件。 Windows 更新引擎的不同部分具有不同的组件名称。 一些组件如下:

  • ProtocolTalker - 客户端-服务器同步
  • DownloadManager - 创建和监视有效负载下载
  • Handler、Setup - 安装程序处理程序(CBS 等)
  • EEHandler - 评估更新适用性规则
  • DataStore - 在本地缓存更新数据
  • IdleTimer - 跟踪活动调用,停止服务

Windows 更新组件名称。

更新标识符

更新 ID 和修订号

同一更新在不同上下文中有不同的标识符。 了解标识符的模式非常重要。

  • 更新 ID:在发布时分配给给定更新的上一个屏幕截图中显示的 GUID
  • 修订号:每次在服务中修改和重新发布给定更新(具有给定更新 ID)时都会递增的数字
  • 不同更新(不是唯一的标识符)之间可重用修订号。
  • 更新 ID 和修订号通常一起显示为“{GUID}.revision”。 Windows 更新更新标识符。
修订 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
    • 小整数(尤其是在数据存储中)可以是本地 ID Windows 更新不一致的术语。

使用 SetupDiag 工具分析 Windows 安装程序日志文件

SetupDiag 是一种诊断工具,可用于分析与 Windows 更新安装有关的日志。 有关详细信息,请参阅 SetupDiag