我要解析数百个Evtx安全事件日志,以根据事件ID解析特定的事件ID(4624)和用户名(joe)。我试图使用Powershell cmdlet,如下所示:

get-winevent -filterhashtable @{Path="mypath.evtx"; providername="securitystuffprovider"; id=4624}


我知道我可以将包含列表的变量传递给所有evtx文件的Path参数,但是我无法根据EVTX消息的子集进行过滤。同样,这将花费非常长的时间来仅解析一个不到150左右的Evtx文件。我知道有一个用于解析Evtx的python包,但是由于python-evtx解析器没有提供导入和使用包本身的出色示例,我不确定它的外观。我无法将所有数据提取到csv中,因为那样会占用过多的磁盘空间。任何关于如何惊人的想法。谢谢。

最佳答案

-Path-FilterXPath参数一起使用,然后使用XPath表达式进行过滤,如下所示:

$Username = 'jdoe'
$XPathFilter = "*[System[(EventID=4624)] and EventData[Data[@Name='SubjectUserName'] and (Data='$Username')]]"

Get-WinEvent -Path C:\path\to\log\files\*.evtx -FilterXPath $XPathFilter

关于python - 解析Evtx文件以获取特定内容的最有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42010398/

10-12 18:07