Windows 更新日志文件

适用于:Windows 10

下表介绍了 Windows 更新创建的日志文件。

日志文件 位置 说明 使用时间
windowsupdate C:\Windows\Logs\WindowsUpdate 在 Windows 8.1 中启动并在 Windows 10 中继续运行时,Windows 更新客户端使用事件跟踪 for Windows (ETW)来生成诊断日志。 如果在运行 Windows Update (WU)时收到错误消息,则可以使用 Windowsupdate 日志文件中包含的信息来解决该问题。
UpdateSessionOrchestration C:\ProgramData\USOShared\Logs 启动 Windows 10 后,更新控制器负责从 Windows 更新中下载和安装各种更新类型。 并将事件记录到这些 etl 文件中。 当你看到更新可用,但不会触发下载。
下载更新但不会触发安装。
当安装了更新,但未触发重启时。
NotificationUxBroker C:\ProgramData\USOShared\Logs 启动 Windows 10 时,此 NotificationUxBroker 会触发通知 toast 或标题。 以及用于检查其是否正常工作的日志是此 etl。 当你想要检查通知是否已触发或不能进行重启或更新可用性等时。
CBS 日志 %systemroot%\Logs\CBS 此日志提供对服务堆栈中的更新安装部件的见解。 对与 WU 安装相关的问题进行故障排除。

生成 WindowsUpdate

若要将 WU 跟踪文件(.etl 文件)合并并转换为单个可读的 WindowsUpdate 文件,请参阅WindowsUpdateLog

备注

运行WindowsUpdateLog cmdlet 时,会将 WindowsUpdate 文件的副本创建为静态日志文件。 除非再次运行 WindowsUpdateLog,否则它不会更新为旧WindowsUpate 日志。

Windows 更新日志组件

WU 引擎具有不同的组件名称。 以下是 WindowsUpdate 文件中显示的一些最常见的组件:

  • 代理-Windows Update 代理
  • AU-自动更新正在执行此任务
  • AUCLNT-AU 与登录用户之间的交互
  • 清洁-设备管理器
  • CMPRESS-压缩代理
  • COMAPI-Windows 更新 API
  • 驱动程序-设备驱动程序信息
  • DTASTOR-处理数据库事务
  • 用于评估更新适用性的 EEHNDLER 表达式处理程序
  • 处理程序-管理更新安装程序
  • 其他常规服务信息
  • OFFLSNC-在没有网络连接的情况下检测可用更新
  • 分析器-分析表达式信息
  • PT-将更新信息同步到本地数据存储
  • 报表-收集报告信息
  • 服务-自动更新服务的启动/关闭
  • 安装程序-安装新版本的 Windows 更新客户端(如果可用)
  • SHUTDWN-关机时安装功能
  • WUREDIR-Windows 更新重定向程序文件
  • WUWEB-Windows 更新 ActiveX 控件
  • ProtocolTalker-客户端-服务器同步
  • DownloadManager-创建和监视负载下载
  • 处理程序、设置安装程序处理程序(CBS 等)
  • EEHandler-评估更新适用性规则
  • 数据存储-在本地缓存更新数据
  • IdleTimer-跟踪活动呼叫,停止服务

备注

如果要查找特定区域中的问题,许多组件日志消息非常有用。 但是,如果不进行筛选以排除不相关的组件,则它们可能毫无用处,以便你可以重点关注重要的组件。

Windows 更新日志结构

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

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

WindowsUpdate 结构将在以下部分中讨论。

时间戳

时间戳指示记录的发生时间。

  • 消息通常按时间顺序排列,但可能存在异常。
  • 同步期间暂停可能指示网络问题,即使扫描成功也是如此。
  • 在扫描结束附近的长时间暂停可以指示取代链问题。
    Windows 更新时间戳

进程 ID 和线程 ID

进程 Id 和线程 Id 是随机的,它们可以在日志之间变化,甚至可以在同一日志中的服务会话之间进行更改。

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

组件名称

搜索和标识与 Id 相关联的组件。 WU 引擎的不同部分具有不同的组件名称。 其中一些内容如下所示:

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

Windows 更新组件名称

更新标识符

更新 ID 和修订号

不同上下文中的同一更新具有不同的标识符。 了解标识符方案非常重要。

  • 更新 ID:在发布时分配给给定更新的 GUID (在上一个屏幕截图中所示)
  • 修订次数:每次在服务上修改并重新发布给定更新(具有给定更新 ID)的数字都将递增。
  • 从一个更新到另一个更新(而不是唯一标识符)重用修订号。
  • 更新 ID 和修订号通常一起显示为 "{GUID}."。 Windows 更新更新标识符
修订 ID
  • 修订 ID (与 "修订号" 没有混淆)是在给定服务上最初发布或修改更新时发出的序列号。
  • 已修订的现有更新保留相同的更新 ID (GUID),其修订号递增(例如从100到101),但获取与以前的 ID 不相关的全新修订 ID。
  • 修订 Id 在给定的更新源上是唯一的,而不是跨多个源。
  • 相同的更新版本在 WU 和 WSUS 上可能具有完全不同的修订 Id。
  • 相同修订 ID 可能表示 WU 和 WSUS 上的不同更新。
本地 ID
  • 本地 ID 是在由给定的 WU 客户端从服务接收更新时发出的序列号
  • 通常在调试日志中看到,尤其涉及更新信息的本地缓存(数据存储)
  • 不同的客户端电脑将为同一更新分配不同的本地 Id
  • 你可以通过获取客户端的%WINDIR%\SoftwareDistribution\Datastore\Datastore.edb 文件来查找客户端正在使用的本地 Id
术语不一致
  • 有时日志使用的术语不一致。 例如,InstalledNonLeafUpdateIDs 列表实际上包含修订 Id,而不是更新 Id。
  • 按窗体和上下文识别 Id:

    • Guid 是更新 Id
    • 出现在更新 ID 旁边的小整数是修订号
    • 大型整数通常是修订 Id
    • 小整数(特别是在数据存储中)可以是 Windows Update inconsisten 术语的本地 id

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

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