これは、XMLデータを介してイベントビューアのカスタムビューからデータをエクスポートするためのPowerShellスクリプトです。
set-executionpolicy unrestricted
[xml]$CustomView = @"
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(EventID=4752 or EventID=4720 or EventID=4740 or EventID=4646 or EventID=4747 or EventID=4725 or EventID=4625 or EventID=4728 or EventID=4751)]]</Select>
<Select Path="Security">*[System[(EventID=4752 or EventID=4720 or EventID=4740 or EventID=4646 or EventID=4747 or EventID=4725 or EventID=4625 or EventID=4728 or EventID=4751)]]</Select>
<Select Path="Setup">*[System[(EventID=4752 or EventID=4720 or EventID=4740 or EventID=4646 or EventID=4747 or EventID=4725 or EventID=4625 or EventID=4728 or EventID=4751)]]</Select>
<Select Path="System">*[System[(EventID=4752 or EventID=4720 or EventID=4740 or EventID=4646 or EventID=4747 or EventID=4725 or EventID=4625 or EventID=4728 or EventID=4751)]]</Select>
<Select Path="ForwardedEvents">*[System[(EventID=4752 or EventID=4720 or EventID=4740 or EventID=4646 or EventID=4747 or EventID=4725 or EventID=4625 or EventID=4728 or EventID=4751)]]</Select>
Alot of rules etc... I excluded a couple because it was 300000 characters limited.
</Query>
</QueryList>
"@
Get-WinEvent -FilterXML $CustomView | Export-CSV "C:\LogFiles\ServiceTool_Log_$(Get-Date -format "yyyy-MM-dd").log"
ログを.evtxまたは.csvとしてエクスポートして、人間が読める形式にするにはどうすればよいですか?
すでにExport-CSVcmmdletを正しい方法で使用しているので、拡張子を.txtに変更するだけです。 PowerShellは、人間が読める形式でエクスポートします。次のようになります。
Export-CSV "C:\LogFiles\ServiceTool_Log_$(Get-Date -format "yyyy-MM-dd").txt"
.evtx側についてはよくわかりませんが、.txtに対してExport-CSVを実行すると、抽出するデータの行ごとのレプリカが常に生成されます。
以前にもCSV/Excelスプレッドシートにカスタムデータを取得しようとしたときに、 this を参照しました。
このリファレンスwevutilコマンドを使用してログ全体をエクスポートする方法を提供します。それがカスタムビューかどうか。