【发布时间】:2018-11-26 12:37:29
【问题描述】:
我在 PowerShell 中有一长串对象(更具体地说,是来自 Get-EventLog cmdlet 的 Windows 事件列表),我想过滤掉这些对象以找出谁访问了我的机器。我使用了以下内容:
Get-EventLog -LogName Security -InstanceId 4672 | Select-Object -Property TimeGenerated, ReplacementStrings[1]
但输出看起来像:
TimeGenerated ReplacementStrings[1]
------------- ---------------------
6/17/2018 2:28:33 PM
6/17/2018 2:28:33 PM
6/17/2018 2:28:33 PM
6/17/2018 2:28:33 PM
6/17/2018 2:28:33 PM
...
我的右栏没有输出。
如果我从ReplacementString 中删除[1]:
TimeGenerated ReplacementStrings
------------- ------------------
6/17/2018 2:28:33 PM {S-1-2-3-4, Username1, blablabla...}
6/17/2018 2:28:33 PM {S-1-2-3-4, Username2, blablabla...}
6/17/2018 2:28:33 PM {S-1-2-3-4, Username2, blablabla...}
6/17/2018 2:28:33 PM {S-1-2-3-4, Username1, blablabla...}
6/17/2018 2:28:33 PM {S-1-2-3-4, Username3, blablabla...}
...
我只想要来自ReplacementStrings 的用户名字段。
我可以使用foreach 循环并手动集中到一个字符串,但我想将这些项目保留为对象以供以后使用,所以这不是我的选择。
【问题讨论】:
标签: powershell object substring filtering event-viewer