首页/系统/Windows 运维速查/FilterHashtable 高效过滤

FilterHashtable 高效过滤

服务端过滤比管道 Where 快:哈希表支持 LogName、ProviderName、Id、Level、StartTime/EndTime、Keywords 组合。

Windows 运维速查系统更新于 2026-10-12
用途在读取阶段就过滤,性能最好
键LogName、ProviderName、Id、Level、StartTime、EndTime、Keywords、UserID
技巧多 Id 用数组;多条件同哈希表叠加

常用示例

常用示例
Get-WinEvent -FilterHashtable @{LogName='System'; Level=1,2; StartTime=(Get-Date).AddDays(-1)}
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Application Error'; Id=1000} -MaxEvents 10
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4625; StartTime=(Get-Date).AddHours(-2)} | Select-Object TimeCreated, Id, @{n='User';e={$_.Properties[5].Value}}
哈希表键名与位置参数兼容但更推荐命名写法;时间用 (Get-Date).AddX 动态算。

易错点

  • 大小写与键名拼错直接报错,字段名以文档为准
  • 一次塞几十个 Id 会慢,拆分时间段更有效

数据来源与参考

  • Microsoft Learn:Get-WinEvent FilterHashtable
  • Microsoft Learn:事件日志筛选

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌