wevtutil qe 是什么
wevtutil qe 是命令行查询事件日志的入口:用 /q 传 XPath 描述过滤条件,/rd:true 表示从最新往旧读,/c 限制返回条数,/f 指定输出格式(text、xml、json 等)。它的好处是不依赖 PowerShell,在只有 cmd 的恢复环境或严格受限的脚本里,同样能把日志捞出来做现场快照。
基本信息
| 适用平台 | Windows Vista/Server 2008 以后,WinPE 部分组件可用 |
|---|---|
| 基本语法 | wevtutil qe 通道 /q:"XPath" /rd:true /c:条数 /f:格式 |
| 时间过滤 | timediff(@SystemTime) <= 毫秒数 |
| 输出格式 | text、xml、renderedxml、json(版本支持略有差异) |
| 权限 | 读取 Security 通道需要管理员 |
典型使用场景
- 在 cmd 环境里快速拉出最近若干条严重与错误级事件
- 按提供程序名过滤某组件的报错,作为给厂商提工单的附件
- 用从最新往旧读加条数限制的方式抓现场快照
- 配合时间条件筛「最近一天」的告警,做日常巡检
- 在精简系统或受限脚本里读取事件日志
- 导出成 xml 交给上游程序解析,避免在命令行里做文本处理
- 在批处理巡检脚本里判断 errorlevel,决定是否触发报警
常用示例
常用示例
wevtutil qe System /q:"*[System[(Level=1 or Level=2)]]" /rd:true /c:20 /f:text
wevtutil qe System /q:"*[System[TimeCreated[timediff(@SystemTime) <= 86400000]]]" /rd:true /c:50 /f:text
wevtutil qe Application /q:"*[System[Provider[@Name='Application Error']]]" /c:10 /f:text
echo %errorlevel% REM 返回 0 表示查询成功
REM 86400000 毫秒等于 24 小时;Level 1 严重、2 错误、3 警告、4 信息参数速查
| 参数 | 作用 | 注意 |
|---|---|---|
| /q: | XPath 过滤条件 | cmd 下用双引号包整体,内层用单引号 |
| /rd:true | 从最新往旧读 | 大日志务必同时限制条数 |
| /c: | 最多返回多少条 | 不写会读出大量内容 |
| /f: | 输出格式 text/xml/json | text 便于肉眼,xml 便于程序处理 |
XPath 里的时间单位是毫秒,86400000 就是 24 小时;Level 1 表示严重、2 表示错误,日常巡检一般只筛这两级,避免被信息级事件淹没。
同一条件既可以用 wevtutil 执行,也可以换成 Get-WinEvent -FilterXPath;纯 cmd 环境用前者,需要后续处理对象属性时用后者更方便。两边走的是同一套 XPath 语法,写好的条件可以直接复用。