Sunday 26 January 2014

WinPcapのインストール時に聞かれる「Automatically start the WinPcap driver at boot time」で困った場合の対処法

Eiji James Yoshidaの記録
http://d.hatena.ne.jp/EijiYoshida/20121029/1351512048

2012-10-29

[][] WinPcapインストール時に聞かれる「Automatically start the WinPcap driver at boot time」で困った場合の対処法Add Star

WinPcapインストール時に聞かれる「Automatically start the WinPcap driver at boot time」だけど、起動時にWinPcapドライバ(NetGroup Packet Filter Driver)が開始するのも気持ち悪いからチェックを外してインストールしている人も多いと思う。
f:id:EijiYoshida:20121029205658p:image
その後、Wiresharkを起動すると下記のような「The NPF driver isn't running. You may have trouble capturing or listing interfaces.」というエラーが表示されて、NICが見えなくて困る人も多いかと。
f:id:EijiYoshida:20121029205657p:image
私も同じ状態になって「で、どうすんだよ!」と思ったので、対処法を書いておく。
  1. [スタート] → [すべてのプログラム] → [アクセサリ] → [コマンド プロンプト]の上で右クリックして[管理者として実行]を選ぶ
  2. 管理者のコマンドプロンプトに net start npf と入力してEnterを押して「NetGroup Packet Filter Driver サービスは正常に開始されました。」と表示されることを確認する*1
あとはWiresharkを起動すればNICも見えるようになっているはず。
NPF*2の設定を確認したい人や変更したい人は下記を試すと良いかと。
  1. [スタート] → [すべてのプログラム] → [アクセサリ] → [コマンド プロンプト]の上で右クリックして[管理者として実行]を選ぶ
  2. 管理者のコマンドプロンプトに sc qc npf と入力してEnterを押す
  3. 出力にある[START_TYPE]の内容を確認する
    1. [3 DEMAND_START]の人は「Automatically start the WinPcap driver at boot time」のチェックを外したインストールで、NPFの起動は手動
    2. [2 AUTO_START]の人は「Automatically start the WinPcap driver at boot time」のチェックを入れたインストールで、NPFの起動は自動
  4. [START_TYPE]を変更する場合は sc config コマンドで変更する
    1. 「Automatically start the WinPcap driver at boot time」のチェックを入れたのと同じにしたい人は、管理者のコマンドプロンプトに sc config npf start= auto と入力してEnterを押す
      1. 管理者のコマンドプロンプトに sc qc npf と入力してEnterを押し、[START_TYPE]の内容が[2 AUTO_START]になっていることを確認する
    2. 「Automatically start the WinPcap driver at boot time」のチェックを外したのと同じにしたい人は、管理者のコマンドプロンプトに sc config npf start= demand と入力してEnterを押す
      1. 管理者のコマンドプロンプトに sc qc npf と入力してEnterを押し、[START_TYPE]の内容が[3 DEMAND_START]になっていることを確認する
  5. コマンドプロンプトを閉じる
デバイスマネージャで[非表示のデバイスの表示]のチェックを入れて[プラグ アンド プレイではないドライバー]配下にある[NetGroup Packet Filter Driver]のプロパティからGUIで設定の変更も出来るんだけど、なぜか[NetGroup Packet Filter Driver]が表示されない場合もあるので、上記みたいにscコマンドを使うのが確実かな。
*1Wiresharkを使い終わったのでNPFを止めたいという場合は、管理者のコマンドプロンプトに net stop npf と入力してEnterを押す
*2:NPFは「NetGroup Packet Filter Driver」のことでサービス名