关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。我们查阅了 Microsoft Learn 的 Get-WinEvent 规范,并将其整理为一项只读实验,用于通过 PowerShell 读取 Windows 事件日志,并在事件查看器中核对结果。未在 Windows 真实设备上进行重新确认。验证状态:📘 已确认微软官方规范 · 未在 Windows 真实设备上确认
信息确认日期:2026年10月3日。不进行删除事件日志或更改设置的操作。
PowerShell 和事件查看器查看的并非是不同的日志。我们以时间和事件 ID 为线索,尝试从两个入口寻找相同的记录。
使用 PowerShell 查看最近 5 条记录
Get-WinEvent -LogName System -MaxEvents 5 |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName
显示内容因环境而异。首先选择 1 条记录,并记下时间、Id 和 ProviderName。
在 GUI 中查找相同的事件
使用 eventvwr.msc 打开事件查看器,选择“Windows 日志”下的“系统”。根据在 PowerShell 中记下的时间和事件 ID 的组合,查找相同的事件。
flowchart LR A["Get-WinEvent"] --> C["Windows 核心日志"] B["事件查看器 GUI"] --> C C --> D["时间 / 事件 ID / 提供程序"]
更改日志类别
Get-WinEvent -LogName Application -MaxEvents 5 |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName
将日志名称从 System 改为 Application,在 GUI 端也同步切换到“应用程序”日志进行观察。
在实际工作中的应用
在故障调查中通过 GUI 找到事件后,将相同的条件应用到 PowerShell 可以扩展到多台电脑或指定时间段。不要仅凭事件 ID 来判定含义,还要同时确认 Provider、时间、Level、Message 等。
仅凭事件 ID 不够的原因
事件 ID 是日志调查的强力线索,但如果单凭数字本身去记,很容易产生误解。在实际调查中,需要结合 ProviderName、LogName、TimeCreated、Level 和 Message 来查看“哪个提供程序在什么时间向哪个日志记录了什么事件”。
先在 GUI 中找到一条记录再转到 PowerShell 的方法,也是练习创建筛选条件的好方法。反过来,也可以使用先用 PowerShell 从大量日志中缩小候选范围,最后在 GUI 中阅读前后事件的使用方法。不要让 GUI 和 CLI 相互对立,而是从不同的入口查看相同的事件日志,这就是本文的重点。
官方信息与一手信息
GitHub 示例
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年10月6日
- 変更修复了 GUI 查找事件章节中的文本乱码与句意重复问题。
- 変更修正了 Mermaid 流程图中的非中文文本,使其与简体中文文章风格保持一致。

