wevtutilでイベントログを書き出す基本手順|eplの使い方・絞り込み・戻し方

wevtutilでイベントログを書き出す基本は、epl を使って EVTX ファイルとして保存することです。最短の流れは、wevtutil el でログ名を確認し、wevtutil qe で数件だけ内容を見て、wevtutil epl <ログ名> <保存先.evtx> を実行するだけです。wevtutil は Windows 10/11 と主要な Windows Server で利用でき、イベントログのエクスポート、アーカイブ、クリアまで対応しています。(Microsoft Learn)

ただし、実際に触ると迷いやすい点があります。epl の1つ目の引数は見た目に反して通常は「ログ名」で、ファイルパスになるのは /lf:true や /sq:true を使う場合だけです。さらに、既存ファイルを上書きするなら /ow:true、条件を絞って書き出すなら /q が必要です。ここを最初に理解しておくと、ほぼ詰まりません。(Microsoft Learn)

目次

wevtutilでイベントログを書き出す前に押さえること

最初に対象ログを決めます。迷ったら Application System Security の3つから始めれば十分です。Microsoft の説明では、Application はアプリケーションが出すイベント、System は Windows システム コンポーネントのイベント、Security はログオン試行やリソース利用などの監査イベントです。ログ名の一覧は wevtutil el、構成やログファイルのパス確認は wevtutil gl <LogName> で行えます。(Microsoft Learn)

まず覚えるコマンドは次の5つです。el はログ名一覧、gl は構成確認、qe は中身の確認、epl は書き出し、cl /bu はバックアップしながらクリアです。公式リファレンスのサブコマンドとサンプルもこの流れで並んでいます。(Microsoft Learn)

やりたいことコマンド例使いどころ
ログ名を一覧するwevtutil el正しいチャンネル名を探す
構成や保存先を確認するwevtutil gl System有効状態やログパスを確認する
数件だけ見るwevtutil qe System /c:3 /rd:true /f:text対象ログの見当違いを防ぐ
EVTXへ書き出すwevtutil epl System C:\Logs\System-backup.evtxまず使う基本形
退避してから消すwevtutil cl System /bu:C:\Logs\System-before-clear.evtxログを空にする前の保全

wevtutilでイベントログを書き出す基本手順

ログ名を確認する

最初にやることは、正しいログ名の確認です。epl の構文上は <Path> と書かれていますが、既定ではここに入れるのはファイルパスではなくログ名です。ログファイルそのものを対象にするのは /lf:true を使うとき、構造化クエリファイルを対象にするのは /sq:true を使うときです。まずは「1つ目はログ名」と覚えるのが近道です。(Microsoft Learn)

wevtutil el

Windows Logs 配下の Application System Security だけでなく、Applications and Services Logs 配下の長いチャンネル名もそのまま指定できます。Microsoft のトラブルシュート例でも、Microsoft-Windows-WLAN-AutoConfig/Operational や Microsoft-Windows-GroupPolicy/Operational を wevtutil epl で書き出しています。(Microsoft Learn)

wevtutil epl Microsoft-Windows-GroupPolicy/Operational C:\Logs\GroupPolicy-Operational.evtx
wevtutil epl "Microsoft-Windows-WLAN-AutoConfig/Operational" C:\Logs\WLAN-AutoConfig.evtx

まず数件だけ見て対象を間違えない

いきなり書き出すより、qe で数件だけ見て対象が正しいか確認したほうが安全です。公式サンプルでも、Application ログの最新3件をテキストで確認する使い方が紹介されています。また、gl ではログが有効か、最大サイズやログファイルのパスなども確認できます。(Microsoft Learn)

wevtutil gl System
wevtutil qe System /c:3 /rd:true /f:text

この確認を挟むだけで、「書き出せたけれど欲しいログではなかった」という初歩的な失敗をかなり減らせます。

eplでそのまま書き出す

対象が決まったら、epl で EVTX に書き出します。基本構文は <ログ名> <保存先ファイル> です。Microsoft の公式例でも System を C:\backup\system0506.evtx にエクスポートしています。(Microsoft Learn)

wevtutil epl System C:\Logs\System-backup.evtx
wevtutil epl Application C:\Logs\Application-backup.evtx
wevtutil epl Security C:\Logs\Security-backup.evtx

同じ名前のファイルがすでにある場合、確認なしで上書きしたいなら /ow:true を付けます。/ow:true を付けないまま毎回同じファイル名に保存しようとして止まるのは、かなりありがちなミスです。(Microsoft Learn)

wevtutil epl System C:\Logs\System-backup.evtx /ow:true

必要ならXPathで絞り込む

全部ではなく一部だけ欲しいときは /q を使います。/q は XPath クエリでフィルターを指定するオプションで、指定しなければ全イベントが対象です。Windows Event Log がサポートするのは XPath 1.0 のサブセットなので、まずは単純な条件から始めるのが安全です。なお、/q は /sq:true と併用できません。(Microsoft Learn)

XPath でよく使う Level は、一般に 1=Critical 2=Error 3=Warning 4=Informational と理解すると組みやすくなります。Get-WinEvent の公式資料でも同じレベル値が説明されています。(Microsoft Learn)

たとえば、重大イベントだけを System から抜き出すなら次の形です。これは Microsoft の XPath サンプルそのものです。(Microsoft Learn)

wevtutil epl System C:\Logs\System-critical.evtx /q:"*[System[Level=1]]"

過去24時間の警告以上を抜き出したいなら、次の形がわかりやすいです。これも Microsoft の XPath 例に沿った条件です。(Microsoft Learn)

wevtutil epl System C:\Logs\System-last24h.evtx /q:"*[System[(Level <= 3) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

失敗しやすいポイントと対処

wevtutil で止まりやすいのは、構文の勘違いと権限周りです。特に epl の1引数目の意味、/ow:true の有無、/q と /sq:true の使い分けは、公式仕様どおりに押さえるだけで解決します。(Microsoft Learn)

症状原因対処
ログが見つからない1つ目の引数をファイルパスだと思っているまず wevtutil el で正しいログ名を確認する
同名ファイルに保存できない上書き指定がない同じファイル名を使うなら /ow:true を付ける
フィルターが効かない/q と /sq:true を混同している最初は /q:"*[System[Level=1]]" のような単純な XPath で試す
Access is denied が出るログアクセス権が不足しているまず管理者権限で実行し、必要ならイベントログ権限を確認する
Event Viewer の Saved Logs が増える開いた保存済みログの場所情報が残るEvent Viewer を閉じてから C:\ProgramData\Microsoft\Event Viewer\ExternalLogs を整理する

特に Security ログは権限の影響を受けやすく、Microsoft のトラブルシュートでも権限不備で Access is denied になる例が案内されています。また、イベントログのアクセス権は個別に構成でき、Security ログは書き込み権限の扱いも特別です。権限問題の切り分けでは、最初に管理者権限のコマンド プロンプトで試すのが実務的です。(Microsoft Learn)

書き出した後の見方、戻し方、代替策

書き出したEVTXの開き方

保存した EVTX は Event Viewer の Open Saved Log から開けます。Microsoft の別記事では、保存済みログを開く操作が案内されており、EVT/EVTX を頻繁に表示すると Saved Logs にエントリが蓄積すると説明されています。保存先の場所情報は %ProgramData%\Microsoft\Event Viewer\ExternalLogs に XML で保持されるため、不要なエントリが増えたら Event Viewer を閉じてから整理します。(Microsoft Learn)

戻し方の考え方

ここで誤解しやすいのが「書き出した EVTX を元のイベントログへ戻せるか」です。wevtutil の公式サブコマンドを見ると、主に用意されているのはエクスポート、アーカイブ、クリアで、保存した EVTX をライブのイベントログへ書き戻す専用コマンドは見当たりません。運用上は、書き出した EVTX は保管・提出・解析用と考えるのが安全です。もし現行ログを空にしたいなら、cl /bu: でバックアップを取ってからクリアします。(Microsoft Learn)

wevtutil cl Application /bu:C:\Logs\Application-before-clear.evtx

/bu で指定するバックアップファイルは .evtx 拡張子付きにしておくのが公式仕様です。(Microsoft Learn)

epl以外を選ぶ場面

用途で迷ったら、epl / al / cl /bu / Get-WinEvent を次のように分けると判断しやすいです。al は自己完結型アーカイブで、ロケール情報も一緒に保持されるため、パブリッシャーが入っていない環境でも読みやすいのが強みです。Get-WinEvent はイベントログやログファイルを取得でき、XPath・構造化 XML・FilterHashtable での絞り込みにも対応します。さらに、Microsoft は大規模ログでは Where-Object に流すより FilterHashtable を使うほうが効率的だと案内しています。(Microsoft Learn)

方法向いている場面ポイント
wevtutil epl通常の退避、提出用の保存まず使う基本形
wevtutil al長期保管、別環境へ持ち出す自己完結型で読みやすい
wevtutil cl /buログを空にする前に保全したいバックアップしながらクリア
Get-WinEvent細かく絞り込んで別処理につなげたいスクリプト化や後加工に向く

迷ったらこの順番で進める

迷ったら、wevtutil el でログ名を確認し、wevtutil qe <LogName> /c:3 /rd:true /f:text で中身を3件だけ見て、最後に wevtutil epl <LogName> C:\Logs\<名前>.evtx で書き出してください。上書きが必要なら /ow:true、条件を付けるなら /q、消す前の退避なら cl /bu: を足すだけです。この順番で進めれば、wevtutilでイベントログを書き出す作業はかなり安定します。(Microsoft Learn)

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次