我一直在到处寻找,只是想弄清楚这个“级别”意味着运行 Get-WinEvent。
例如,
Get-WinEvent –FilterHashtable @{logname=’application’; level=2; starttime=$time; id=20}
level=2
在这里代表什么?
我问的原因是我正在尝试验证每个日志的严重性,并且 level=2
是否代表与严重性相关的任何内容。
最佳答案
让我们试着找出答案:
#Get sample object
$t = Get-WinEvent -MaxEvents 1 -FilterHashtable @{ Logname='application'; level=2 }
#Explore properties and type
$t.GetType().Fullname
System.Diagnostics.Eventing.Reader.EventLogRecord
快速 msdn 搜索 EventLogRecord将我们指向 EventLogRecord.Level Property
Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the LevelDisplayName property
#Check out Level vs LevelDisplayName
$t | Format-Table -Property Level, LevelDisplayName -AutoSize
Level LevelDisplayName
----- ----------------
2 Error
在我的日志中快速搜索以列出一些级别值:
Get-WinEvent @{ logname='application' } | Select-Object Level, LevelDisplayName -Unique | Sort-Object Level
Level LevelDisplayName
----- ----------------
0 Information
2 Error
3 Warning
4 Information
它还在 Level-property 页面上说它使用 StandardEventLevel
枚举,所以让我们列出它的值:
[enum]::GetValues([System.Diagnostics.Eventing.Reader.StandardEventLevel]) | Select-Object {$_}, {$_.value__ }
$_ $_.value__
-- -----------
LogAlways 0
Critical 1
Error 2
Warning 3
Informational 4
Verbose 5
关于Powershell - 获取 WinEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442767/