イベントビューアーで、フィルターしたログを保存すると、情報が欠落することがある。

こんにちは、Windows プラットフォーム サポートの徳永です。
本記事では、イベントビューアーで確認されております事象についてご紹介いたします。

最終更新履歴
2019/01/07

事象


イベント ビューアー内、右ペインの "現在のログをフィルター" にてフィルターし、"全てのイベントを名前をつけて保存" メニューで
.evtx 形式以外の拡張子でイベントを保存すると、一部情報が欠落することがございます。

原因


本事象は、イベント ログ データを取得するためのスレッドと、フィルターしたテキストを書き出すスレッドが競合することにより発生する事象となり、イベントの種類に関係なく、事象が発生する可能性がございます。

回避策


イベント ビューアーにて、フィルターしたイベントを保存する場合には、.evtx 形式の拡張子で保存いただくか、イベント ビューアーを使用せず、コマンドを使用してテキストに出力することで、事象を回避することができます。

下記は Get-WinEvent コマンドを使用して、日時を指定した場合のコマンド例になります。

▼ 特定の期間のイベントを .csv 形式でエクスポートする
- コマンド
Get-WinEvent -Filterhashtable @{Logname='イベント名';Starttime='yy/mm/dd hh:mm:ss;Endtime='yyyy/mm/dd hh:mm:ss'} | export-csv -encoding default -path

- 記述例
Get-WinEvent -Filterhashtable @{Logname='System';Starttime='2018/09/01 10:00:00';Endtime='2018/11/01 01:00:00'}| export-csv -encoding default -path C:\Export.csv

▼ 特定の期間のイベントを .txt 形式でエクスポートする
- コマンド
Get-WinEvent -Filterhashtable @{Logname='イベント名';Starttime='yy/mm/dd hh:mm:ss;Endtime='yyyy/mm/dd hh:mm:ss'} | Out-File

- 記述例
Get-WinEvent -Filterhashtable @{Logname='System';Starttime='2018/09/01 10:00:00';Endtime='2018/11/01 01:00:00'} | Out-File c:\test.txt

▼ 参考情報
Get-WinEvent
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-winevent?view=powershell-6

wevtutil
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wevtutil

備考


本事象は、Windows 8 以降の全ての OS Version で発生することを確認しており、現在の最新バージョンである 1809 の次に公開される、次期バージョンにて修正を予定しております。