So-net無料ブログ作成
検索選択
Windows,Wireshark ブログトップ

Windows起動時からtsharkを起動する方法 [Windows,Wireshark]

久しぶりにブログ更新です。
今日は、Windows起動時からtsharkを起動する方法を書きます。
「なぜ? こんなこと必要なの?」と思われると思いますが、ログオフ状態での通信を収集したいが、モニタポートがないため、どうやったらパケットキャプチャが収集できるか考えたら、この方法になりました。
なお、本設定はWindows XPのみで実施したのものです。

1.準備
①Wiresharkをインストールします。
②コマンドプロンプトを開き、以下のコマンドを入力します。
cd C:\Program Files\Wireshark
tshark -D
キャプチャしたいインタフェース番号を記録します。(通常は1)

2.バッチ作成
以下のようなバッチを作成します。
start_tshark.bat
-------
@echo off
setlocal
set LOOP_MAX=100
set LOOP_COUNTER=0

cd /d c:\pcap
for /L %%a in (1,1,%LOOP_MAX%) do (
call :MAIN %%a
)

goto end

:MAIN
set DT=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set TM=%time:~0,8%
set TM=%TM::=%
set TM=%TM: =0%
set LOOP_COUNTER=%~1
echo %DT% %TM% %LOOP_COUNTER%回目 tshark実行 >> pcap.log
move packet*.pcap old
"C:\Program Files\Wireshark\tshark" -i 1 -b filesize:100000 -w c:\pcap\packet.pcap
exit /B 0

:end
exit 0
-------
注意:tsharkの「-i 1」の1については、収集するインタフェース番号に合わせてください。

3.バッチ設定
①Cドライブ直下にpcapフォルダを作成します。
②pcapフォルダにoldフォルダを作成します。
③pcapフォルダに作成したstart_tshark.batを配置します。

4.タスク登録
①コントロールパネルを開き、タスクをダブルクリックで開きます。
②スケジュールされたタスクの追加をダブルクリックで開きます。
③タスクウィザードが表示されたと思いますので、次へをクリックします。
④アプリケーションの選択画面で参照をクリックし、Cのpcapフォルダにあるstart_tshark.batを選びます。
⑤名前はそのままでも、お好きに変更してもかまいません。
⑥このタスクの実行では、「コンピュータ起動時」にチェックを入れ、次へをクリックします。
⑦ユーザー名とパスワードの入力欄では、Administrators権限のユーザーとパスワードを設定します。

5.PC再起動
PCを再起動します。

6.確認方法
①Windowsのログオンします。
②Cドライブのpcapフォルダをエクスプローラで開きます。
③キャプチャファイルpacket_00001_2011MMDDhhmmss.pcapがあることを確認してください。
④pcap.logを確認してください。tsharkを起動した時刻がわかります。


ポイントをお話します。
バッチはFor文で100回繰り返し実行するようにしています。
set LOOP_MAX=100
ここで繰り返し実行する理由は、PCを起動してから、1度でもログオンをすると、ログオフ後にtsharkは終了します。繰り返し起動しないと、その後のパケットキャプチャが取れないからです。
また、100回を指定していますが、1回のWindowsログオン・ログオフで約5回のtshark起動・終了となりますので、20回程度、ログオン・ログオフを実行しても、キャプチャは継続して収集可能です。
100回では足らない場合には、LOOP_MAXの値を変更してください。

では、また、次回をお楽しみに!!

Windows,Wireshark ブログトップ