所以对于@Frode F.给我的这个剧本,我怎么能进一步解析呢? 这是@Frode F.给我的 -
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4688
} | Select-Object TimeCreated,@{name='NewProcessName';expression={ $_.Properties[5].Value }}, @{name='CommandLine';expression={ $_.Properties[8].Value }}
现在我如何解析它以删除某些事件?这是我的代码 -
$search = @("C:\*")
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4688
} | Select-Object TimeCreated,@{name='NewProcessName';expression={ $_.Properties[5].Value }}, @{name='CommandLine';expression={ $_.Properties[8].Value }
} | Where-Object -FilterScript { $_.Properties[8].Value -notlike $search}
这一直让我无法索引到null数组。
答案 0 :(得分:2)
Where-Object
cmdlet正在对前面的Select-Object
cmdlet中传出的结果进行操作。
尝试更换:
$_.Properties[8].Value -notlike $search
使用:
$_.CommandLine -notlike $search
编辑:@Negorath和@Kiran是正确的。如果您在选择之前重新安排管道以过滤,则可能会得到性能更佳的解决方案。