システム作業を実施しているとパケット情報が欲しくなることが多くあると思います。
パケットキャプチャといえば、Wireshark等のパケットキャプチャソフトをインストールしなければならないと思われているかもしれませんが、OSの標準コマンドでも、取得が可能です。
(以前は「netsh trace」で取得していましたが、こちらのほうが便利です。)
下記のバッチファイルを管理者権限で実行することで簡単にパケット取得ができます。
サーバーOSであればWindows Server 2016以降、クライアントOSであればWindows 10以降で利用可能となっており、再起動等なしで利用できます。
@echo off
cd /d %~dp0
Pktmon start -c --comp nics -f PacketData.etl
timeout 60
Pktmon stop
Pktmon etl2pcap PacketData.etl
動作としては、パケット取得を開始し、1分間待機し、取得情報をファイルに出力し、出力されたetl形式のファイルを、pcap形式に変換する処理を行います。
(Wiresharkで開けるようにするため、pcap形式にしています。)
- 出力ファイル名を変更したい場合は、PacketData.etl(2箇所)を変更してください。
- 取得期間の延長はtimeoutの値を変更してください。(秒)
- サイズが大きくなる場合は、「Pktmon start -c -m <サイズ>」で変更してください。(初期値512MB)
- 長期間、大量に取得する場合は、Pktmon start に「-m multi-file」を指定することで複数ファイル作成することも可能です。
※複数ファイルの場合はpcapへの変換は別途実施してください。 - その他オプションは、Pktmonのヘルプを参照してください。