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