PowerShell EVTX选择性事件ID

时间:2019-02-11 18:40:39

标签: powershell events system id

我尝试了很多实验,但是无法解决这个问题。

动机:PS脚本选择性地解析我将输入的EVTX并仅过滤我想要的事件ID。

Get-WinEvent -Path [EVTX]但我根本无法使用-FilterHashTable!

我想到了-

$events = @(7045,4624)
get-eventlog -logname system -entrytype error | select eventid, message| where- 
object {$events -notcontains $_.eventid}

但是如何输入EVTX并输出干净的CSV或写入控制台?

编辑2月13日-

非常感谢你们!我对StackOverflow还是很陌生,但我在这里仍然得到了很多积极的帮助,我深感荣幸。 :)

所以我已经取得了进步-

Get-WinEvent -FilterHashtable @ {Path ='C:\ TestEvent \ SystemVictim.evtx','C:\ TestEvent \ Security.evtx'; Id ='7045','7031','4624','4625','42'} | where-object {$ _。Message -like' SomeProcessName '} |网格外

我试图获得7045的合并事件-正在注册服务以及来自4624、4625的所有数据,依此类推。

  1. 当我成为“对象”时,我相信它会缩小到仅一个事件ID。我还需要其余的事件ID! :(
  2. 我使用'out-gridview'以便只在输出框中过滤它们,而不希望使命令复杂化。
  3. 也许我可以将两个命令链接在一起,以实现我想要的目的。除非获得成功,否则我将继续测试,我只要求提供一些指导。

1 个答案:

答案 0 :(得分:-1)

这适用于-FilterHashTable:

Get-WinEvent -FilterHashtable @{LogName = 'System'; Id = '7045','4624'}

这适用于使用-FilterHashTable导出的.evtx文件:

Get-WinEvent -FilterHashtable @{Path = 'c:\temp\system.evtx'; Id = '7045','4624'}

请参见示例,并提供here

的-FilterHashTable参数描述。