首页 > 解决方案 > Powershell Where-Object 与变量的比较

问题描述

我正在尝试使用 Get-Winevent 从特定用户那里收集特定的 eventID,如下所示:

$UserID=Get-ADUser -Identity Administrator | Select-Object -Property "SID"

Get-WinEvent Microsoft-Windows-TerminalServices-RDPClient/Operational |
Where-Object {$_.ID -match "1102" -and $_.UserId -match $UserID} | Format-List -Property * 

问题:当我与 $UserID 进行比较时,我没有得到任何结果。如果我与实际的 SID 进行比较,我会得到我想要的结果。我已经尝试了我能找到或想到的所有比较器,所以我认为我在这里缺少一些基本的东西,但我不知道我想学习什么。非常感谢您的帮助!

标签: powershellcomparator

解决方案


使用用于 get-winevent 的 filterhashtable 可能会工作并且更快。我没有在 xml 命名数据中看到用户 ID。

$UserID = Get-ADUser Administrator | % sid

Get-WinEvent @{logname = 'Microsoft-Windows-TerminalServices-RDPClient/Operational'; 
  id = 1102} | ? userid -eq $userid

推荐阅读