SSブログ
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 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。