図 Windows XPでWindowsファイアウォールのログ・ファイルの名前を変更するバッチを実行した画面
図 Windows XPでWindowsファイアウォールのログ・ファイルの名前を変更するバッチを実行した画面
[画像のクリックで拡大表示]

日付や時刻を環境変数に設定してからnetsh firewall set logging filelocation = %FNAME%でログ・ファイル名を変更

 Windowsファイアウォールのログは,ログの設定の 「サイズ制限」 で指定したサイズに達すると,それまでのファイルの名前を「元のログ・ファイル名.old」に変更され,新しいログ・ファイルが作成されます。しかし,再び指定したサイズに達すると,その時点のログの内容で [元のログ・ファイル名].old を上書きしてしまいます。

 そのため,既定の設定では一つ前の世代のログ・ファイルまでしか保存されず,それより古いファイアウォールのログを保存しておくことができません。それより古いログ・ファイルを保存するためには,以下のようなバッチ・ファイルを実行してファイアウォール・ログのファイル名を定期的に(サイズ制限に達する前に)変更するといった対応が必要です(図)。

SET DT=%date:~-10%
SET TM=%time:~-11%
SET FNAME=C:\Log\Firewall\%DT:~0,4%%DT:~5,2%%DT:~8,2%%TM:~0,2%%TM:~3,2%%TM:~6,2%.log
netsh firewall set logging filelocation = %FNAME%

 ただし,実際に筆者がWindows XP Professional SP2で確認したところでは,ファイル名を変更する際にログが数秒間取得できないことがありました。このため,この方法で求める要件を満たすことができるかを事前に十分に検討してください。