当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

作者:精品下载站 日期:2024-12-14 20:03:39 浏览:12 分类:玩电脑

如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?


从历史上看,WindowsUpdate.log 纯文本文件已用于分析 Windows Update 代理和服务的操作。但是,Windows 10 (Windows Server 2016/2019) 中的 Windows 更新日志以Windows 事件跟踪文件格式 (ETW) 保存,而不是通常的文本文件。通过这样的操作,Windows 开发人员计划提高日志子系统的性能并减少文本文件在磁盘上占用的空间。

因此,Windows 更新事件不再实时写入 %windir%\WindowsUpdate.log 文件。尽管该文件仍然存在于 Windows 文件夹的根目录中,但它仅表明 ETW 格式现在用于收集 WU 日志。

Windows 更新日志现在使用 ETW(Windows 事件跟踪)生成。

请运行 Get-WindowsUpdateLog PowerShell 命令将 ETW 跟踪转换为可读的 WindowsUpdate.log。

有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=518345

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

新的日志记录方法对于管理员来说有一个缺点——现在您无法快速分析 Windows Update 代理服务、在 WindowsUpdate.log 文本文件中查找错误代码(请参阅 Windows Update 错误代码的完整列表)、检查 WSUS 代理设置并分析更新安装历史记录。

您可以将 ETW 事件转换为纯文本 WindowsUpdate.log 文件,以便更方便地分析更新服务事件。为此,请使用 PowerShell cmdlet - Get-WindowsUpdateLog。此 cmdlet 允许您从所有 .etl 文件(它们存储在C:\WINDOWS\Logs\WindowsUpdate中)收集信息并创建单个 WindowsUpdate.log 文本文件。

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

要生成 WindowsUpdate.log 文件并将其保存在 C:\PS\Logs 中,请在 PowerShell 控制台中运行以下命令:

Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

在 Windows Server 2016 中,当您运行 Get-WindowsUpdateLog cmdlet 时,您可能会收到错误“SymSrv.dll 丢失”:

Copy-Item : Cannot find path 'C:\Program Files\Windows Defender\SymSrv.dll' because it does not exist. At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 char:5

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

如果服务器上未安装 Windows Defender,则文件“C:\Program Files\Windows Defender\SymSrv.dll”通常会丢失。

要修复该错误,您可以安装 Windows Defender,从另一个 Windows Server 2016/Windows 10 复制 SymSrv.dll 文件,或在本地 WinSxS 文件夹中搜索文件 SymSrv.dll(在我的例子中,该目录名为 C:\Windows\WinSxS md64_windows-defender-service-cloudclean_...)并将其复制到“C:\Program Files\Windows Defender”文件夹。

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

在旧版 Windows 10 版本中,首次运行 Get-WindowsUpdateLog cmdlet 时,它会下载并安装 Microsoft Internet 符号存储。 最新版本的 Windows 10 可以在线访问 Azure 中的 Microsoft 字符服务器。然后是 cmdlet:

  1. 从所有.etl文件中读取数据;

  2. 数据转换为CSV(默认)或XML格式;

  3. 中间格式文件中的数据将被转换并添加到 LogPath 参数中指定的日志文本文件中(如果未指定 LogPath 中的参数,则在运行该命令的用户的桌面上创建 WindowsUpdate.log)

提示。分析 ETL 文件的另一种方法(但稍微复杂一些)是使用 Tracefmt.exe 实用程序从 .etl 接收数据。

使用以下 PowerShell 命令打开日志文件:

Invoke-Item -Path C:\PS\Logs\WindowsUpdate.log

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

在某些情况下,在 WindowsUpdate.log 文件中您可以看到这样的字符串:

Unknown(140): GUID=53212e4cc-4321-f43a-2123-9ada0090bc12b (No Format Information found).

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

这意味着您没有安装 Windows 符号服务器(现在您无法下载单独的 Windows 符号安装程序,因为它是从 Azure 中的符号存储自动下载的)。对于隔离环境,您可以根据 Windows Update 的离线符号一文使用符号服务器的离线版本。

提示。请注意,创建的 WindowsUpdate.log 文件是静态的,不会像以前的 Windows 版本那样实时更新。要更新文件,您需要再次运行 Get-WindowsUpdateLog cmdlet 或创建一个以某种频率自动更新文件的脚本(文件将被覆盖)。

分析生成的 WindowsUpdate.log 文件相当困难,因为它从许多事件源收集数据:

AGENT

- Windows更新代理事件;

AU

- 自动更新;

AUCLNT

- 用户交互;

HANDLER

- 更新安装程序管理;

MISC

- 常见的 WU 信息;

PT

- 与本地数据存储同步更新;

REPORT

- 报告收集;

SERVICE

- wuauserv 服务启动/停止事件;

SETUP

- 安装新版本的 Windows 更新客户端;

DownloadManager

- 使用 BITS 将更新下载到本地缓存;

Handler, Setup

- 安装程序标头(CBS 等);

以及许多其他人。

您可以使用简单的正则表达式从 Windows Update Agent(代理)中选择最近 30 个事件:

Select-String -Pattern '\sagent\s' -Path C:\PS\Logs\WindowsUpdate.log | Select-Object -Last 30

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

您可以按多个来源筛选 WindowsUpdate.log 中的事件:

Select-String -Pattern '\sagent\s|\smisc\s' -Path c:\PS\Logs\WindowsUpdate.log | Select-Object -Last 50

同样,您可以按 KB 编号、错误(FAILED、退出代码、FATAL)解析文本文件中的事件。

您还可以为远程计算机或服务器生成 WindowsUpdate.log 文件:

Get-WindowsUpdateLog -ETLPath \ny-srf-1\C$\windows\Logs\WindowsUpdate -LogPath C:\PS\Logs\windowsupdate-ny-srf-1.log

您还可以使用事件查看器日志来分析 Windows Update 服务的操作。展开以下事件视图部分:应用程序和服务日志 -> Microsoft -> Windows -> WindowsUpdateClient -> 操作

[玩转系统] 如何在 Windows 10/Windows Server 2016 上查看和解析 WindowsUpdate.log?

您可以使用 PSWindowsUpdate 模块来管理来自 PowerShell cli 的更新。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯