Windows-Server-2008-R2

將保存的 evtx 文件轉換為文本

  • November 10, 2021

我希望將大量保存的安全日誌文件 (.evtx) 導出為文本或 CSV 格式。我找到了 wevtutil 但在處理保存的日誌文件時似乎只能將 .evt 轉換為 .evtx:

wevtutil epl c:\logs\seclog.evtx c:\logs\seclog.txt /lf:true

該文件創建為 seclog.txt,但它是 .evtx 格式。

是否可以轉換為文本,或者是否有其他方法可以盡快將文件轉換為文本?我嘗試使用 Powershell,但需要的時間太長。

編輯:我查看了 Log Parser,它似乎也很快,但它沒有正確導出描述欄位:

The description for Event ID xxx in Source "Microsoft-Windows-xxxx" cannot be found. The local computer may not have the...

最後,我使用 Log Parser 轉換為 CSV,然後

$$ System.IO.File $$::ReadLines($filename) 搜尋文本。一個 800MB 的 .evtx 文件可以在大約 2 分 30 秒內轉換,然後讀取該文件大約需要 2 分鐘。可能它可以更快地導出到 XML 或數據庫中,但它對我來說會花費我必須花費的時間。

$logparser = "c:\program files (x86)\Log Parser 2.2\logparser.exe"
$query = "SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx"

& $logparser -i:evt -o:csv $query

引用自:https://serverfault.com/questions/783708