这是 PowerShell 的后续问题| EVTX | 将消息与数组进行比较(例如)
\n我稍微改变了策略,现在我正在收集所有已安装的服务,
\n$7045 = Get-WinEvent -FilterHashtable @{ Path="1system.evtx"; Id = 7045 } | select \n@{N=\xe2\x80\x99Timestamp\xe2\x80\x99; E={$_.TimeCreated.ToUniversalTime().ToString(\'yyyy-MM-ddTHH:mm:ssZ\')}},\nId, \n@{N=\xe2\x80\x99Machine Name\xe2\x80\x99; E={$_.MachineName}},\n@{N=\xe2\x80\x99Service Name\xe2\x80\x99; E={$_.Properties[0].Value}},@{N=\xe2\x80\x99Image Path\xe2\x80\x99;E=$_.Properties[1].Value}},\n@{N=\xe2\x80\x99RunAsUser\xe2\x80\x99; E={$_.Properties[4].Value}},@{N=\xe2\x80\x99Installed By\xe2\x80\x99; E={$_.UserId}}\nRun Code Online (Sandbox Code Playgroud)\n现在,我匹配每个对象的任何可疑特征,如果找到,我会添加一个值为“是”的“可疑”列。这是因为我想将决定权留给分析师,并且非常确定坏人可能会使用我们以前从未见过的东西。
\nforeach ($Evt in $7045)\n{\nif ($Evt.\'Image Path\' -match $sus)\n {\n\n $Evt | Add-Member -MemberType NoteProperty -Name \'Suspicious\' -Value \'Yes\'\n\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n现在,我无法让 PowerShell 显示所有列,除非我特别指定Select它们
$7045 | Format-Table\nRun Code Online (Sandbox Code Playgroud)\nCSV 导出也是如此。前两个不包括Suspicious列,但第三个包括,但那是因为我明确要求它这样做。
$7045 | select * | Export-Csv -Path test.csv -NoTypeInformation\n$7045 …Run Code Online (Sandbox Code Playgroud)