我一直在到处寻找,只是为了弄清楚这个"级别"意味着运行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
对 EventLogRecord 的快速 msdn 搜索将我们指向 EventLogRecord.Level 属性
获取事件的级别。级别表示 事件。对于级别的名称,获取 "级别显示名称"属性
#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-属性页上说它使用 StandardEventLevel
枚举,所以让我们列出它的值:
[enum]::GetValues([System.Diagnostics.Eventing.Reader.StandardEventLevel]) | Select-Object {$_}, {$_.value__ }
$_ $_.value__
-- -----------
LogAlways 0
Critical 1
Error 2
Warning 3
Informational 4
Verbose 5
有关详细信息,请参阅此链接。MSDN
实际上,您正在寻找一个 winmeta.xml 文件,但它将包含这些基本值:
- 日志始终: 0,
- 严重: 1,
- 错误: 2,
- 警告:3,
- 信息: 4,
- 详细: 5,
- 保留16岁以下的休息时间