首页/系统/Windows 运维速查/Get-WinEvent 基础查询

Get-WinEvent 基础查询

PowerShell 读日志的主力:-LogName 指定通道,-MaxEvents 限制条数,-Level 过滤级别;结果对象属性丰富。

Windows 运维速查系统更新于 2026-10-13

Get-WinEvent 是什么

Get-WinEvent 是读取 Windows 事件日志的主力命令,可以按日志通道、时间范围、事件编号与级别等条件取回记录,返回的是包含时间、来源、编号、级别与完整消息的事件对象。相比更早的日志命令,它支持的通道更全,筛选条件也更强,尤其是按编号与时间组合过滤时可以显著减少读取量。排查故障时通常先用它把可疑时间段的事件取出来,再按编号或来源进一步收敛,最后导出留档。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7 及以上(Windows 平台)
简洁语法Get-WinEvent -LogName System -MaxEvents 50 -Level 2
强条件语法Get-WinEvent -FilterHashtable @{LogName='System'; Id=41,6008; StartTime=(Get-Date).AddDays(-1)}
常用通道系统、应用程序、安全(安全日志需管理员权限)
级别取值1 严重、2 错误、3 警告、4 信息、5 详细
返回对象时间、来源提供程序、事件编号、级别、完整消息与属性数组

典型使用场景

  • 按时间窗取回故障时段的事件,观察前后顺序
  • 按事件编号精确定位已知的故障类型
  • 只看错误与警告级别,跳过大量信息级记录
  • 统计某类事件在一天内出现的次数与分布规律
  • 把结果导出成文件,作为工单附件或留档证据
  • 在远程主机上读取日志,集中排查多台机器

常用示例

常用示例
# 取最近 20 条系统日志
Get-WinEvent -LogName System -MaxEvents 20
# 只看错误级别
Get-WinEvent -LogName System -MaxEvents 50 -Level 2
# 过滤出错误并只显示关键列
Get-WinEvent -LogName Application | Where-Object LevelDisplayName -eq 'Error' |
  Select-Object -First 10 TimeCreated, ProviderName, Id, Message
# 按编号与时间窗组合筛选,效率更高
Get-WinEvent -FilterHashtable @{LogName='System'; Id=6008,41; StartTime=(Get-Date).AddDays(-3)} | Sort-Object TimeCreated
# 远程读取并导出
Get-WinEvent -ComputerName app01 -LogName System -MaxEvents 100 | Export-Csv D:\evt\app01.csv -Encoding UTF8 -NoTypeInformation
# 统计来源分布
Get-WinEvent -LogName System -MaxEvents 500 | Group-Object ProviderName | Sort-Object Count -Descending | Select-Object -First 5 Name, Count

常用参数与级别

参数或取值含义注意点
-LogName指定日志通道通道名区分大小写不敏感,但需存在
-MaxEvents限制返回条数从最新往回取,时间范围仍需自行判断
-Level按级别过滤,可给多个值比取回后过滤更省资源
-FilterHashtable按编号、时间等组合过滤长时段排查优先用它
-ComputerName读取远程主机日志需要相应权限与网络可达
1 到 5 级别严重到详细问题排查通常只看 1 到 3
只是限制条数而不给时间范围时,取到的是最新记录,可能与故障时段无关。有明确时间点时直接使用强条件筛选,既准又快。
安全日志默认需要管理员权限,普通会话读取会报错。跨机排查时还要确认目标主机的远程日志访问权限与网络连通性。

易错点

  • 只用条数限制不限定时间:结果集中在最近,可能拿不到故障时段的数据,应显式指定时间范围
  • 在普通权限下读安全日志:会直接报错,需要管理员会话或调整访问权限
  • 取回后再过滤级别:数据量大时明显变慢,能用参数过滤就不要在管道里筛
  • 把整条消息塞进表格:消息含换行,输出会非常凌乱,只取首行或截断后展示
  • 忽略日志被覆盖:日志容量有限,故障发生后很久才查可能已被轮转覆盖,重要主机应调大容量

数据来源与参考

  • Microsoft Learn:Get-WinEvent

相关工具

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