我遇到了这个 Get-WinEvent 仅获取交互式登录消息,并尝试在相同情况下使用OR
:
Get-WinEvent -FilterHashtable @{Path="c:test.evtx"; id=4624;} | Where-Object {$_.properties[8].value -eq 2} OR {$_.properties[8].value -eq 3}
我想知道这不起作用?
如果我有两个不同的事件 ID 和两个不同的 where 子句,例如 EventId 4624
和登录类型 2
或登录类型 3
会发生什么 OR
事件 ID 1234
和主机名 = localhost
。
我需要做的是只检查登录类型:2 和登录类型 3,并在登录类型为 3(远程(时打印网络详细信息。
OR
在 PowerShell 中无效...你可能的意思是-or
!
在这种情况下,您的代码最终看起来像这样:
Get-WinEvent -FilterHashtable @{Path="c:test.evtx"; id=4624;} |
Where-Object {$_.properties[8].value -eq 2 -OR $_.properties[8].value -eq 3}
作为补充,我经常发现-in
运算符在这种场景中更清晰
Get-WinEvent -FilterHashtable @{Path="c:test.evtx"; id=4624;} |
Where-Object {$_.properties[8].value -in 2, 3}