获取事件日志和计数警告

时间:2021-05-10 05:26:48

标签: powershell

(Get-EventLog -LogName System | Where-Object {$_.EntryType -eq "Warning"}).count

如果我运行该命令,它会返回所有警告,但我只想提取仅 4 个事件 ID 的计数,例如 1006,1007,455 和 6003。有人可以在这种情况下帮助我吗?

2 个答案:

答案 0 :(得分:1)

带有 FilterHashtable 的 Get-Event 可以完成这项工作:

(Get-WinEvent -FilterHashtable @{ logname = 'System'; Level = 3; Id = 1006,1007,455,6003 }).count

级别值:

Comment(or Verbose)  5
Information          4
Warning              3    [int][System.Diagnostics.Eventing.Reader.StandardEventLevel]::Warning
Error                2
Critical             1
LogAlways            0

或者创建一个对象

 $Event = @{
 Warning = [int][System.Diagnostics.Eventing.Reader.StandardEventLevel]::Warning
 Error = [int][System.Diagnostics.Eventing.Reader.StandardEventLevel]::Error
 }

$Event.Warning 给出值 3

答案 1 :(得分:0)

你可以使用下面的命令来得到你想要的结果:

 (Get-EventLog -LogName System | Where-Object {$_.EntryType -eq "Warning"} | Where-Object {$_.InstanceId -like "1006" -or $_.InstanceId -like "1007" -or $_.InstanceId -like "455"} -or $_.InstanceId -like "6033"}).count

结果将获得您提供的 InstanceId 的计数。

选项 2 - 如果您想查找过去 2 小时内的记录计数,请使用以下命令:

 (Get-EventLog -LogName System -After (Get-Date).AddHours(-2) | Where-Object {$_.EntryType -eq "Warning"} | Where-Object {$_.InstanceId -like "1006" -or $_.InstanceId -like "1007" -or $_.InstanceId -like "455"} -or $_.InstanceId -like "6033"}).count
相关问题