用 Get-WinEvent -FilterHashtable 高效筛选 Windows 事件日志
用 FilterHashtable 直接查询 System/Application/Security 日志中的错误事件,比先导出再过滤快得多。
运行 Get-WinEvent -FilterHashtable @{LogName='System'; Level=2; StartTime=(Get-Date).AddDays(-7)} 获取最近一周的错误事件。
01命令
命令
$ Get-WinEvent -FilterHashtable @{LogName='System'; Level=2; StartTime=(Get-Date).AddDays(-7)} -MaxEvents 20 | Format-Table TimeCreated, Id, ProviderName, Message -AutoSize02作用说明
-FilterHashtable 把过滤条件下推到 Windows 事件引擎,只读取匹配的记录;而 `Get-EventLog | Where-Object` 会先反序列化全部事件,日志一大就卡死。Level 2 表示错误、3 警告、1 严重;StartTime/EndTime 接收 DateTime 对象。它还支持 -Path 读取 .evtx 文件、-ProviderName 按来源过滤,基本覆盖 wevtutil 的功能且输出更友好。
03风险
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- Get-WinEvent依据: Documents FilterHashtable parameters including LogName, Level, and StartTime for server-side filtering.
- Get-WinEvent - SS64依据: Shows FilterHashtable usage examples for querying System and Application logs by level and date range.
最后验证: 2026-09-17 · 分类: 系统与设置