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

开发脚本查询特定Windows事件并显示匹配事件总数

实现Windows事件查询并显示总数的PowerShell脚本方案

嘿,我懂你想要的效果——用PowerShell脚本筛选特定Windows事件,运行结束后清晰展示找到的事件总数对吧?这里给你两种实用的实现方式,都能轻松达成需求:

方法一:存储结果到变量后统计(推荐)

这种方式既方便后续对事件做其他处理,又能直观获取总数,还能避免无匹配事件时的报错:

# 将查询到的事件存储到变量中
$targetEvents = Get-WinEvent -FilterHashtable @{ 
    LogName='Application' 
    Level=4 
    StartTime=(Get-Date).AddHours(-24) 
} -ErrorAction SilentlyContinue

# 输出最终找到的事件总数
Write-Host "本次查询共找到 $($targetEvents.Count) 条符合条件的事件"

小细节说明:

  • 加上-ErrorAction SilentlyContinue是为了防止当没有匹配的事件时,脚本抛出“找不到任何事件”的错误,让脚本运行更平滑。
  • $targetEvents.Count会直接返回集合中的元素数量,如果没有找到事件,会显示0,逻辑更清晰。

方法二:管道直接统计(无需存储变量)

如果不需要保留事件数据,只想快速得到总数,可以用管道链直接完成统计:

Get-WinEvent -FilterHashtable @{ 
    LogName='Application' 
    Level=4 
    StartTime=(Get-Date).AddHours(-24) 
} -ErrorAction SilentlyContinue | 
    Measure-Object | 
    Select-Object -ExpandProperty Count | 
    ForEach-Object {
        Write-Host "符合条件的事件总数: $_"
    }

逻辑解释:

  • Measure-Object会统计管道对象的数量,通过Select-Object -ExpandProperty Count提取出具体的数字,最后用ForEach-Object输出结果。

另外补充个小提示:你用的Level=4对应的是**信息(Information)**级别的事件,如果需要调整为其他级别,可以修改这个值:

  • 1 = Critical(严重)
  • 2 = Error(错误)
  • 3 = Warning(警告)
  • 4 = Information(信息)
  • 5 = Verbose(详细)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:13:12