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

デバイスの有効・無効の切り替えを楽にしたい

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

毎回この作業をするのが面倒くさくなってきたので、簡単にできないかな?と調べたら特定のハードウェアをコマンドで操作するバッチファイルの作り方がありました。Windows Driver Kit (WDK) に含まれるWindowsデバイスコンソール(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ビット用がそれぞれ保存されています。

Link

https://msdn.microsoft.com/ja-jp/windows/hardware

Devcon.exe のみダウンロードしたいとき

(2018/08/15追記) 基本的に Devcon.exe は Windows Driver Kit (WDK) に含まれているものですが、 Windows Driver Kit (WDK) をインストールしなくても以下のページから Devcon.exe の単体をダウンロードできます。

まずはハードウェアIDを調べておく

Devcon.exeでハードウェアを操作するためにはハードウェアIDが必要になりますので、まずは対象のデバイスのハードウェアIDを事前に調べます。

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

Devcon.exeを使ったバッチファイルを作る

テキストエディタを開き、以下のようにコマンドを作成し、先ほどコピーしたハードウェア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"

バッチファイルは管理者として実行すること

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

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

コマンドの参考

Link

https://docs.microsoft.com/ja-jp/windows-hardware/drivers/devtest/devcon?redirectedfrom=MSDN

その他参考

PAGETOP