【Management】Devcon.exe でコマンドラインからデバイスを無効化

あぁ、昔こんなコマンド使ってたなぁ..という方、けっこういらっしゃると思います。一部のバッチファイルマニアには有名なコマンドですね。

Windows7 Beta でも動くのかなぁ…とおもって確認したらちゃんと動作したので、せっかくなのでご紹介しておきます。

その名も Devcon.exe です。以下からダウンロードできます。自己解凍形式になっているので、どこかに解凍してからお使いください。64ビット版と32ビット版が格納されています。

デバイス マネージャとして機能する DevCon コマンド ライン ユーティリティ
https://support.microsoft.com/kb/311272/ja

さて、このコマンド、はたして何に使うコマンドなのか…

例えば、スタートアップスクリプト等を使用して、コマンドラインからデバイスを無効にもしくは有効にしたい場合ってありますよね。もしくは、ドライバーをインストールした後で、再起動するのではなくてハードウェアの再スキャンすることでデバイスを認識させたりとか。

私は以前に、ノートパソコンに標準実装されている「無線LANカード」を強制的に無効化するのに使ったり、USBカードリーダーの再認識を強制的に行わせるために使ったりしていました。

通常は以下のように「デバイスの管理」画面で[ハードウェア変更のスキャン]を行ったり、デバイスの有効/無効を切り替えます。

image

Devcon.exe を使用すると、これをコマンドライン上から行えます。

例えば、ノートパソコンによく実装されている Bluetoothデバイスを使わせたくないとしましょう。

事前に、以下のコマンドを使用して、無効化したい Bluetooth デバイスの ハードウェアIDを取得します。そのためには、「デバイスの管理」を使用して、無効化したいデバイスのプロパティを開きます。

image  image

[詳細]タブを開いて、プロパティから[ハードウェアID] を参照してください。

上の画面では「USB\VID_044E&PID_3017&REV_0218」と「USB\VID_044E&PID_3017」という2つのハードウェアIDが存在していることがわかります。

基本的に「文字列が長いほうのID」を使用すれば良いのですが、念のためにコマンドプロンプトから以下のコマンドを入力して、マッチするデバイスが1つであることを確認してください。

image

以下のように disable パラメタを使用するとデバイスは無効化できます。

image

ちなみに、Windows Server 2008 がドメインコントローラであり、かつWindows 2003/XP/Vista/2008 がクライアントの場合には、「グループポリシー基本設定」に用意されている「デバイス」で行うことができるので、Devconは必要ありません。

image