You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Get-WinEvent查询指定时段全量日志的错误事件

Get-WinEvent 全范围错误级别事件检索方案

问题原因

Get-WinEvent 的 -FilterHashtable 参数依赖Windows事件日志原生查询接口实现筛选,该接口存在明确限制:不支持同时将LogName和ProviderName两个筛选键都设置为全通配符*。此时接口无法构建有效的查询索引,会直接返回空结果集,就是双通配符写法无返回结果的根本原因。

正确实现方法

检索指定时间范围内所有日志、所有提供程序的错误级别事件时,不需要同时给两个参数设置通配符:不指定ProviderName筛选键时,查询默认就会匹配所有事件提供程序,直接省略冗余的ProviderName="*"配置即可。

可用命令参考:

# 建议以管理员身份运行PowerShell,否则会因权限不足无法访问部分系统/安全日志,导致结果不全
Get-WinEvent -FilterHashtable @{
    LogName = "*"
    StartTime = "04.01.2022"
    EndTime = "05.31.2022"
    Level = 2 # Level值对应事件级别:2=错误,3=警告,4=信息
} -ErrorAction SilentlyContinue

补充说明

  • 命令默认从最新事件向前回溯扫描,查询时间跨度大、系统日志总量高时会有等待时间,属于正常现象
  • -ErrorAction SilentlyContinue 参数会自动跳过无权限访问、无匹配事件的日志条目,避免命令执行中途被非关键报错打断
  • 如果需要更精准的时间匹配,建议给StartTime和EndTime传入明确的DateTime类型对象,避免系统区域日期格式差异导致筛选范围偏移,示例写法:
    $start = Get-Date "2022-04-01 00:00:00"
    $end = Get-Date "2022-05-31 23:59:59"
    Get-WinEvent -FilterHashtable @{
        LogName = "*"
        StartTime = $start
        EndTime = $end
        Level = 2
    } -ErrorAction SilentlyContinue
    

内容的提问来源于stack exchange,提问作者Purclot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 21:27:35