powershell - 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 进行比较,我会得到我想要的结果。我已经尝试了我能找到或想到的所有比较器,所以我认为我在这里缺少一些基本的东西,但我不知道我想学习什么。非常感谢您的帮助!
解决方案
使用用于 get-winevent 的 filterhashtable 可能会工作并且更快。我没有在 xml 命名数据中看到用户 ID。
$UserID = Get-ADUser Administrator | % sid
Get-WinEvent @{logname = 'Microsoft-Windows-TerminalServices-RDPClient/Operational';
id = 1102} | ? userid -eq $userid
推荐阅读
- vim - Vim 注释格式选项重复不起作用
- python - Heroku django 使用环境设置管理 shell (db, vars)
- tensorflow - TensorFlow 分布式估计器问题
- javascript - 取消嵌套 JavaScript Firestore 函数
- c++ - C++:如果 std::atomic_flag 是唯一的无锁原子类型,如何在 C++ 中实现无锁数据结构?
- javascript - MobX 商店没有在反应中更新
- r - 在 R 的 data.table 中,我们如何通过两列的值创建一个有序的指示变量?
- php - 传递图像数据的最佳方式
- vxworks - Vxworks 支持多道程序吗?
- html - 如何根据屏幕宽度响应设计使div移动到中间