試行錯誤の末に、できたのが以下の改良版「resetbt.cmd」です(リスト2)。
@ECHO OFF REM Qualcomm Atheros AR3011 Bluetooth 3.0の問題をチェック C:\demo\devcon.exe status "@USB\VID_0CF3&PID_3002\6&3B0CF529&0&4" |findstr "problem" IF %ERRORLEVEL% == 0 GOTO RESETBT C:\demo\devcon.exe status "@USB\VID_0CF3&PID_3002\6&3B0CF529&0&4" |findstr "stopped" IF %ERRORLEVEL% == 0 GOTO RESETBT REM その他の任意のBluetooth関連ドライバが実行中であることをチェック C:\demo\devcon.exe status "@BTHENUM\*" |findstr "running" IF %ERRORLEVEL% == 0 GOTO END :RESETBT ECHO Bluetoothデバイスの問題を発見! SET /P YESNO="Do you want to reset this device ? (y/n): " IF "%YESNO%"=="n" GOTO END ECHO 問題のデバイスのアンインストール(再起動が必要な場合あり)... C:\demo\devcon.exe -r remove "@USB\VID_0CF3&PID_3002\6&3B0CF529&0&4" IF %ERRORLEVEL%==0 GOTO NEXT ECHO コンピュータの再起動が必要です。 PAUSE shutdown /r /t 0 GOTO END :NEXT ECHO ハードウェア変更の再スキャン... C:\demo\devcon.exe rescan ECHO デバイスのステータスを更新(15秒間待ってから)... TIMEOUT /T 15 /NOBREAK C:\demo\devcon.exe status "@USB\VID_0CF3&PID_3002\6&3B0CF529&0&4" :END
改良版では、最初のBluetoothデバイスで問題がある場合(The device has the following problem...またはDriver is stopped)、そのデバイスをアンインストールして、再スキャンします。デバイスが正常に動作している(Driver is running)にもかかわらず、関連する他のデバイス(インスタンス名「BTHENUM\」から始まるデバイス)のドライバが1つも動作していない場合も、最初のデバイスをアンインストールします。
また、デバイスのアンインストール時に再起動が要求される場合(devcon removeの「-r」オプションは再起動が必要な場合に「0」以外のエラーコードを返します)、バッチを一時停止してユーザーに示します。
それでは改良版を試してみましょう。問題のBluetoothデバイスに[!]マークが付いている場合、問題を検出してデバイスをリセット(アンインストール)するかどうかをユーザーに問い合わせます(画面5)。「y」と入力すると、デバイスをアンインストールし、再スキャンして、デバイスが検出されるまでしばらく(15秒)待ち、その後、デバイスのステータスを再確認します(画面6)。
Bluetoothデバイスに[!]マークが付いておらず、他の関連デバイスが認識されていない場合は、デバイスをアンインストール後、コンピュータの再起動を知らせるためにバッチを一時停止します(画面7)。何かキーを押すと、再起動が始まり、起動が完了すると、Bluetoothデバイスが全て正常な状態に戻ります。
リスト2のバッチは、筆者のノートPCで動くように作ってあります。他のPCでそのまま使えるものではありません。また、問題を根本的に解決するものではなく、ごまかしながら使い続けるために、面倒な操作をバッチ化しただけのものです。
筆者の場合は、しばらく使っていたところ、デバイスのインスタンスIDが変わってしまい、バッチを修正する必要がありました。しかしながら、デバイスの制御にPowerShellコマンドレットやdevcon.exeが利用可能であることと、これらの使い方のヒントにはなると思います。同じような問題に悩んでいる方の手助けになれば幸いです。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.