一発でデバイスを有効・無効にするdevcon.exeを使ったバッチファイルの作り方

使用しているパソコン(Windows8.1)がなぜか毎回起動するとネットワークが接続されていない状態になるので、その度にデバイスマネージャーを開いてネットワークカードを無効・有効にしています。

毎回この作業をするのが面倒くさくなってきたので、簡単にできないかな?と調べたら特定のハードウェアをコマンドで操作するバッチファイルの作り方がありました。Windows Driver Kit (WDK) に含まれるdevcon.exeというものをコマンドで操作すればいいようです。

これを使えば、いろんなデバイスを必要な時だけ簡単にON・OFFができて便利そうです。

Windows Driver Kit (WDK)をインストール

まずはマイクロソフトの以下のページからWindows Driver Kit (WDK)をダウンロードしてインストールすることが必要です。今回の場合はWindows 8.1 Update用をダウンロードしました。インストールするとdevcon.exeC:\Program Files (x86)\Windows Kits\8.1\Tools\の中に32ビット・64ビット用がそれぞれ保存されています。

ハードウェアIDを調べる

ハードウェアを操作するためのバッチファイルでハードウェアIDが必要になりますので調べます。

  1. デバイスマネージャーで対象のハードウェアのプロパティを開く
  2. 「詳細」タブの「プロパティ」の欄をハードウェアIDにする
  3. 表示された値をコピーする

バッチファイルを作る

テキストエディタを開き、以下のようにコマンドを作成し、先ほどコピーしたハードウェアIDを貼り付けて、○○.batというように拡張子をbatにして保存します。

:: devcon.exeのパス(OSが64bitの場合)
@set DEVCON="C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon.exe"
 
:: ネットワークカードの無効と有効
:: Intel(R) 82578DC Gigabit Network Connection

%DEVCON% disable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"
%DEVCON% enable "PCI\VEN_8086&DEV_10F0&SUBSYS_00751B0A&REV_05"

管理者として実行

バッチファイルの実行は管理者として実行しないと有効に動作しません。

なので起動時や定期的に実行したい場合はスタートアップに登録するのではなくタスクスケジューラに登録し管理者権限で実行するように設定することが必要です。

その他参考