Powershell使用包括所有子对象的头文件将get-winevent解析为csv

use*_*026 6 powershell parsing

我正在使用Powershell 4并尝试将存档的事件日志解析为包含所有数据的csv文件,并且具有与之关联的标头.我能够得到的最接近的是使用以下命令:

    Get-WinEvent -Path .\Security.evtx |Select-Object TimeCreated, ProviderName, Id, Message, Level, Keyword, UserID, Data, Subject, SubjectUserSid, SubjectUserName, SubjectLogonId, ComputerName | Export-Csv .\Logging.csv
Run Code Online (Sandbox Code Playgroud)

这为我提供了csv文件中所有字段的所有标题信息,但是包含数据的唯一字段是TimeCreated,ProviderName,ID,Level和Message.我正在尝试将缺少的数据放入列中但不成功.那么我在这里做错了什么?

iRo*_*Ron 2

这是从问题本身的编辑中复制的,应注明原始问题作者

好吧,我终于想通了......至少对于我需要完成的事情来说。希望这会对某人有所帮助。

    Get-WinEvent -Path .\Security.evtx | select TimeCreated, ProviderName, Id, @{n='Message';e={$_.Message -replace '\s+', " "}} | Export-Csv .\Logging.csv
Run Code Online (Sandbox Code Playgroud)

此代码允许您将存档的事件日志导出到带标题的 csv 中,并将整个消息正文放入一个单元格中,这样当您没有工具可使用时,可以轻松导入到数据库中。