Tuesday, September 11, 2012
WindowsでUSB機器を自動でOFF/ONする方法
普段はUSB HDDをつなげっぱなしで、バックアップを取る時だけ
ON/OFFしたいな的シチュエーションで使えます。
またOFFの時は、HDDがスピンダウン状態なようで温度が劇的に下がります。
DevConというツールを使います。
ダウンロードはこちらから:
MS DevCon
DevConツールはWDK(Windows Driver Kit) の中にも入ってます。
CDからの場合は Tools だけインストールすればいいかと思います。
とはいえ50個ぐらい余計なToolsもインスコされちゃいますけど。
※ 今回は 7.1.0を使います
WDK8 Windows 7, 8, Vista系用:
MS WDK8
WDK Ver.7.1.0 Windows XP, 2003など古め系用:
MS WDK7.1
WDKサポートブログ デバイスの有効無効~:
MS WDK Blog
で、
まずはHDDを接続してハードウェアIDをデバイスマネージャから確認します。
ディスクドライブの下の “対象のHDD”
と
USBコントローラの下の “USB大容量記憶デバイス”
この2つの “プロパティ > 詳細” にある “ハードウェアID” を調べます。
(値はCtrl+cでピーコできます)
HDDのID 例: USBSTORDiskHitachi_HUA722020ALA330_____ USB大容量記憶デバイス ID 例: USBVid_152d&Pid_2336&Rev_0100
※CLI好きの方は以下でもIDが確認できます:
C:> devcon.exe hwids =usb
2つの値がわかったところで.batを書きます。
devcon.exe へのパスは適宜変えてください。
まずはアンマウントバッチから。
対象HDDを先にdisableするのがポイントでしょうか。
umount.bat @set DEVCON="C:toolsdevconi386devcon.exe" %DEVCON% disable "USBSTORDiskHitachi_HUA722020ALA330_____" %DEVCON% disable "USBVid_152d&Pid_2336&Rev_0100"
次にマウント系。
まずUSB大容量記憶デバイスのみを有効にします。
※たまたま使っていたPC構成だとUSB大容量記憶デバイスをリスタートしないと
HDDが有効にならなかったのでバッチはいちおう分けてrestart文を入れました。
restartしなくても動くモノもあるようです。
usb-mount.bat @set DEVCON="C:toolsdevconi386devcon.exe" %DEVCON% enable "USBVid_152d&Pid_2336&Rev_0100" %DEVCON% restart "USBVid_152d&Pid_2336&Rev_0100"
最後にHDDを有効に
drive-mount.bat @set DEVCON="C:toolsdevconi386devcon.exe" %DEVCON% enable "USBSTORDiskHitachi_HUA722020ALA330_____"
バッチを手動でたたいて動作がOKなら、
バッチ3つをタスクマネージャに登録して時間差攻撃で実行する。
いじょ