Windowsイベントログ等を出力して圧縮するバッチファイル

納品したシステムで問合せ事項(不具合、etc...)が発生した際に、リモート環境が無いシステムの場合、調査の為にOSイベントログやアプリケーションログをお客様に収集していただくことがあると思います。

OSイベントログの保存には、イベントビューアを開いて‥と複数の操作が必要です。
特に、Windows 11等最新のOSだと、この「イベントビューア」へのアクセスがなかなか煩雑で、手順を説明するのもちょっと面倒だったりします。

このバッチファイルは、OSイベントログ(Application,System)とシステム情報(systeminfo)を収集し圧縮してデスクトップに出力するものです。
バッチファイルのショートカットなどをデスクトップに置いておき、万一の際にはダブルクリックして実行し、デスクトップに生成されたzipファイルをメールなどで送付してもらうことで、一次対応が格段に楽になると思われます。
また、本バッチファイルをベースにアプリケーションログもまとめて圧縮する様にすることで便利に使えると思います。

OS標準機能のみ使用し、本バッチファイル以外のアプリケーションを必要としませんので、業務システムでも比較的導入しやすいと思います。

Windows11日本語版で動作確認済みです。

【注意】日本語OS以外では、正しく年月日ファイル名を生成できません。
"set FName=%dt:~-10,4%-%dt:~-5,2%-%dt:~-2,2%"の部分を変更する必要があります。

【注意】本バッチファイルを複数同時に実行することは想定していません。

ダウンロード

【注意事項】引用流用は自由ですが、本内容を使用した際のいかなる結果に関して一切の責任を負いません。自己の責任の上でご活用ください

下記のコード右上にあるコピーボタンをクリックし、任意のエディタに貼り付けて保存してご利用ください。
ライセンスは CC0 とします。

archive_eventlogs.bat
@echo off

rem ** License **
rem - These codes are licensed under CC0.
rem - http://creativecommons.org/publicdomain/zero/1.0/deed.ja

setlocal

rem NOTE: %RANDOM%は同時に実行すると同一値になる可能性?
set "MY_TEMP_DIR=%TEMP%\archive_eventlogs_%RANDOM%"

rem NOTE: 日本語OS以外では、正しいファイル名を生成できない
rem "log_yyyy-mm-dd"
set dt=%date%
set FName=%dt:~-10,4%-%dt:~-5,2%-%dt:~-2,2%

set LOG_DIR=log_%FName%
set LOG_PATH=%USERPROFILE%\Desktop\%LOG_DIR%

rem
echo;
echo ------------------------------------------------------------------
echo システム情報とOSイベントログを収集します。
echo ------------------------------------------------------------------
echo;
echo 中断するにはCTRL+Cを押してください。
pause
echo;

mkdir "%MY_TEMP_DIR%"

systeminfo >%MY_TEMP_DIR%\systeminfo.txt
wevtutil epl Application %MY_TEMP_DIR%\application.evtx
wevtutil epl System %MY_TEMP_DIR%\system.evtx

rem NOTE: アプリログも一緒に収集する場合は、下記を参考に追加
rem mkdir "%MY_TEMP_DIR%\MY_APP_LOG"
rem copy C:\MY_APP\log\*.log %MY_TEMP_DIR%\MY_APP_LOG

rem
powershell Compress-Archive -Path %MY_TEMP_DIR% -DestinationPath %LOG_PATH%.zip

rem
rmdir /s /q %MY_TEMP_DIR%

rem
echo;
echo ------------------------------------------------------------------
echo デスクトップに
echo     %LOG_DIR%.zip
echo を出力しました。
echo ------------------------------------------------------------------
echo;
echo ご協力ありがとうございました
echo;
echo 何かキーを押すと終了します
pause > NUL

endlocal