Powershell EventLog ReplacementStrings -ExpandProperty

Powershell EventLog ReplacementStrings -ExpandProperty

我需要一个适用于所有 AD 用户的登录数据库。为了将其改造为过去的登录,我在 powershell 中使用 EventLog 查询。我的查询有效:

Get-EventLog -ComputerName $endpoint System -Source Microsoft-Windows-Winlogon | select machinename,timegenerated,replacementstrings | export-csv c:\test.csv

ReplacementStrings returns {1,SID} 数组。我将此 SID 用作另一个 table 的查找属性。我在网上看过并尝试扩展 属性 但到目前为止运气不好。如您所见,我想将这一切导出到 csv,每个事件作为单独的行包含:机器名、时间生成,然后是 SID(这是我需要的替换字符串)。我也研究过使用 .Split[1] 但无法使其正常工作,因为我还在同一查询中请求另外两个对象。提前谢谢大家 - 这个让我难住了。

我不熟悉该数据的结构,但在我自己的机器上进行了简单测试 returns 结果相同。查看数据类型,它似乎只是一个字符串 array 这就是拆分它不起作用的原因。您可以通过 {1, SID} 判断它是如何显示在控制台上的。相反,我们使用 calculated propertyreplacementstrings 中提取第二个值。

Get-EventLog -ComputerName $endpoint System -Source Microsoft-Windows-Winlogon | 
        Select-Object machinename,timegenerated,@{Label="SID";Expression={$_.replacementstrings[1]}} |
        Export-Csv c:\test.csv