Powershell filterhashtable按事件代码筛选
是否可以使用filterhashtable按代码范围或不平等性筛选事件日志? 比如:Powershell filterhashtable按事件代码筛选,powershell,hashtable,event-log,Powershell,Hashtable,Event Log,是否可以使用filterhashtable按代码范围或不平等性筛选事件日志? 比如: $filter = @{ LogName = 'application' Level = 2,3 ID = isBetween 2000 and 4000 and -ne 3333 => ? } Get-WinEvent -FilterHashtable @filter 根据ID,只能是整数列表 --ID= 根据ID,只能是整数列表 --ID= 正如Andy所说,ID需要是一个数
$filter = @{
LogName = 'application'
Level = 2,3
ID = isBetween 2000 and 4000 and -ne 3333 => ?
}
Get-WinEvent -FilterHashtable @filter
根据ID,只能是整数列表
--ID=
根据ID,只能是整数列表
--ID=
正如Andy所说,ID需要是一个数字列表,但您可以自己构建ID数字列表(我之前发布了一个不完整的答案,但已经修复了我自己的代码)
下面应该可以做到这一点:
[int32[]]$ID = @(2000..3332 + 3334..4000)
$filter = @{Logname='Application';
Level=2,3;
ID=$ID}
Get-WinEvent -FilterHashtable $filter
正如Andy所说,ID需要是一个数字列表,但您可以自己构建ID数字列表(我之前发布了一个不完整的答案,但已经修复了我自己的代码)
下面应该可以做到这一点:
[int32[]]$ID = @(2000..3332 + 3334..4000)
$filter = @{Logname='Application';
Level=2,3;
ID=$ID}
Get-WinEvent -FilterHashtable $filter
奇怪的我尝试了这个方法,效果很好,但我能使用的最大范围是大约20个ID。奇怪-你的windows版本和powershell版本是什么?我使用的是运行在windows server 2012R2上的powershell版本4.0.1.1。目标远程计算机都是windows 7。当它失败时,很明显是远程机器做出响应,没有找到符合条件的东西。我开玩笑,发现其他人说他们有超过22个ID的问题。如果你没有得到任何回复,我会很小心的。也许只有远程机器出了问题。顺便说一句,当我看到你的解决方案时,我很高兴;我确信这会解决我的问题。你今天得到的选票是我。啊-我只在本地用过,不是远程用的。会做一些奇怪的测试。。。我尝试了这个方法,效果很好,但我能使用的最大范围是大约20个ID。奇怪-你的windows版本和powershell版本是什么?我使用的是运行在windows server 2012R2上的powershell版本4.0.1.1。目标远程计算机都是windows 7。当它失败时,很明显是远程机器做出响应,没有找到符合条件的东西。我开玩笑,发现其他人说他们有超过22个ID的问题。如果你没有得到任何回复,我会很小心的。也许只有远程机器出了问题。顺便说一句,当我看到你的解决方案时,我很高兴;我确信这会解决我的问题。你今天得到的选票是我。啊-我只在本地用过,不是远程用的。我会做一些测试