我正在解析history.log
debian 主机以生成包含日期/软件包/版本的 csv。在测试环境中运行一组测试后,我在实际主机上更新这些软件包。
我想对 Windows Server 做同样的事情。
我已经使用Get-WindowsUpdateLog
PowerShell 命令生成了一个 .log 文件,但显然,除了时间戳之外,我无法从中获得任何有用的信息。据我所知,为了能够看到日志中实际对应于安装会话的行(在此日期安装的包 X、Y 和 Z),我需要启用详细的 Windows 更新日志,但我该怎么做呢?我还需要知道更新的实际名称,而不是 ID。据我所知,我可以手动将更新 ID 复制到Microsoft 更新目录,但我想避免这种情况。启用详细日志记录也能解决这个问题吗?还是太简单了?
答案1
PSWindowsUpdate
使用PowerShell 库中的优质Powershell 模块:关联
那里有一个Get-WUHistory
您正在寻找的命令。
答案2
根据快速搜索“Windows 更新日志”(在此查询之前我从未遇到过此日志),Windows 更新客户端现在似乎使用 Windows 事件跟踪 (ETW) 来生成诊断日志。不过,这些日志以二进制文件格式 ETL 保存。
但是,您的 Windows 操作系统有多旧?
您可以查看 ETL 文件,也可以使用日志收集器(例如 NXLog,我参与了该项目)来收集 ETW 数据并将其写出为 JSON 消息。通常,您需要找出 ETW 提供程序的名称才能开始记录它们。例如,Microsoft-Windows-WindowsUpdateClient 是 Windows Server 2016 的 ETW 提供程序的名称。