1

我正在使用 get-winevent 将 evtx 日志转换为 .json 文件。然后我把它寄给了ELK。
Get-WinEvent -Path .\log.evtx | ConvertTo-Json|Format-List | Out-File log.json
该文件看起来像一个包含 Windows 上文件的普通字符串。但是当我把它带到linux时,它包含二进制数据,无法解析为ELK。 在此处输入图像描述


即使我使用 out-string,也没有任何变化。
$result = Get-WinEvent -Path .\user-creation-1log.evtx | ConvertTo-Json| Format-List
$result | Out-String | out-file log.json

这在 linux 中也看起来像一个二进制文件。(虽然我记得创建export-csvget-winevent完整的文本文件,但这会产生一个非常难看的格式化 csv 文件)。我真的很喜欢 convertTo-json 格式化和重视 json 数据的方式,并且更喜欢它。(如果有人可以提供一种不同的方式将 evtx 数据以最完整的形式转换为 json,很高兴接受)。
我已经尝试过 evtx2csv python 模块,但这不会将输出写入文件。

4

1 回答 1

0

Format-List首先,如果您打算导出 JSON ,请不要使用。这仅用于将对象格式化为控制台中的良好视觉表示。

另外,我不使用 Linux,但我想明确指定 utf8 作为编码以确保它兼容是最安全的:

Get-WinEvent -Path .\log.evtx | ConvertTo-Json | Out-File log.json -Encoding utf8
于 2021-07-03T08:53:37.687 回答