我需要从Windows 7工作站中提取本地登录/注销列表。我以evtx格式获得了安全事件日志的保存副本,并且遇到了一些问题。使用PowerShell提取登录/注销事件
下面的PowerShell提取所有的事件ID为4624
或4634
:
Get-WinEvent -Path 'C:\path\to\securitylog.evtx' | where {$_.Id -eq 4624 -or $_.Id -eq 4634}
我想那么只有logon type = 2 (local logon)
过滤。配管这:
| where {$_.properties[8].value -eq 2}
但是似乎删除所有id=4634
(注销)事件。
即使事件id = 4624
事件,也没有用户ID存在。例如管道到:
| select-object -property Timecreated,TaskDisplayName,MachineName,userid
或以其它方式配管Export-Csv
,所述userid
是空白的。
两个问题是:
- 为什么当管道输送到这里
{$_.properties[8].value -eq 2}
与ID 4634滴的事件? - 为什么
userid
是空的?我怎样才能得到userid
?
感谢您的 - 此命令的工作来提取的事件: GET-WinEvent -Path 'C:\路径\为\ securitylog.evtx' |其中{($ _。Id -eq 4624-和$ _。properties [8] .value -eq 2) - 或($ _。Id -eq 4634-和$ _。properties [4] .value -eq 2) } 有没有办法通过XML元素名称来引用属性元素? 另外,我如何实际打印出属性数组的值?选择对象允许我打印属性(例如select-object -property TTimecreated,TaskDisplayName,MachineName),但我似乎无法弄清楚如何从属性数组中打印特定的元素。 – cuvy