变量中具有多个 ID 的 Get-WinEvent -FilterHashTable 不起作用

Get-WinEvent -FilterHashTable with multiple IDs in a variable not working

这对我有用:

Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = 4625,4740}

(....我期望的结果...)

这个有效:

$EventId = "4625"

Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventId}

这行不通:

$EventId = "4625,4740"

Get-WinEvent -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventId}

错误...

  Get-WinEvent : No events were found that match the specified selection criteria.
At line:1 char:13
+ Get-WinEvent <<<<  -FilterHashTable @{Logname = "ForwardedEvents" ; ID = $EventIds}
+ CategoryInfo          : ObjectNotFound: (:) [Get-WinEvent], Exception
+ FullyQualifiedErrorId : NoMatchingEventsFound,Microsoft.PowerShell.Commands.GetWinEventCommand

有人可以帮忙吗?

在您的示例中,使用多个 ID,您在做两件不同的事情。

$EventId = "4625,4740" 定义了一个字符串。您的工作示例使用定义为逗号分隔数字的整数数组。

只需将其更改为 $EventId = 4625,4740(删除引号)即可。查看 documentation for Get-WinEvent and the -FilterHashTable 我们看到:

-- ID=<Int32[]>

所以它需要一个数组而不是一个字符串。