[小ネタ]「ハードウェア変更のスキャン」をDevconコマンドでやってみた。#Surface Dock 認識しない
福岡オフィスの梶原です。
自分は業務ではWindows派なので、Surface Laptopを使用しているのですが
Surface Laptopって、質感とかデザインとかほんと最高です。ただ。
USBポートが1個しかないんですよね、1個しかないんですよね。
ということで、Surface ドックの登場です
ドッキング ステーションを使用すると、Surface が完全なデスクトップ PC に変身します。ドッキング ステーションでは、Surface をフルサイズのモニター、イーサネット、外部スピーカーなどに接続すると共に、Surface への充電も行うことができます。
間違ってないです。電源をとると同時に、外付けキーボード、マウス、ディスプレイ、有線LANなどなど
1タッチで、つくのでもう、手ばなせません、惚れてます。
が!、こいつ安定してないです。(2018/10/12現在)
今まで何回か、ファームアップデートが実施されており、そのたびに良くなっていると思うんですが(これはまちがいない(頑張って中の人!)
やっぱりマウスが認識しなくなったり、ディスプレイが写らなかったりする不具合があります。
なんて気分屋なんでしょう。可愛いやつですね。
まぁ、惚れてなければ、あきらめもつくのですが、そこは
一応エンジニアの端くれなので、自分でなんとかしてみます。
デバイスを再認識させてみる
さて、前置きが長かったですが、本題にはいります。
上記のようなSurface ドックに嫌われている認識しない場合、
一番手っ取り早いのは抜き差しです。
ただ、これがまた瞬間の抜き差しだと微妙にだめです。
1秒くらい間を開ける必要があります。
WifiをON/OFFをパパっとやっても認識しなかったりするのと一緒ですね。
外れたことを認識、ついたことを認識させることが必要です。
はい。めんどくさいです。
ということで、どうにかならないかってことなんですが、
これまた、めんどくさい手段があります。
「コンピュータの管理」→「デバイスマネージャー」→「操作」→「ハードウェア変更のスキャン」 を実施します。
なにも変更してないのにハードウェア変更のスキャンをしなきゃいけない。
まぁ、付き合いってだいたいそんなもんですね。
こちらを実施すれば、一応自分の環境では、認識しないデバイスなどは再認識してくれます。
デバイスの再スキャンをコマンドラインで
さて、本当の本題にはいります、この作業が年に1回とかならいいんですが、
機嫌がわるくなる時は、日に何回か無視されます。
そこで、なんとか少ない動きで「ハードウェア変更のスキャン」ができないか?
ってことで、世界に向かって叫んでみました。
コマンドで「ハードウェア変更のスキャン」ありました。
元ネタはこちら
http://www.atmarkit.co.jp/ait/articles/1804/03/news008.html
すばらです。
devcon.exeを使って、デバイスの再スキャン
さて、サクサク行きます。
Windows Device Console (Devcon.exe)が必要なので
https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon
の手順にそって
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/download-the-wdk
手順 1: Visual Studio 2017 をインストールします。
(自分はVisual Studio Community 2017 をすでにインストールしていたので Skipしました。(デバイス開発しなければ不要だと思ってます)
手順 2: インストール WDK
Windows 10、バージョン 1809
でwdksetup.exe
ダウンロードして、インストールします。
インストールパスの確認
インストールが正常に行っていれば
%WindowsSdkDir%\tools\x64\devcon.exe
OR
%WindowsSdkDir%\tools\x86\devcon.exe
にインストールされているかと思います。
自分のパスは
"C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe"
となってます。
再スキャン用BATファイルの作成
あとは、こちらを使用してデバイスの再スキャンを実施するBATファイルを作成し、devcon-rescan.bat として保存します
devcon-rescan.bat
"C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" rescan
あとは、これを管理者権限で実行すればいいのですが ちょっとだけ、一工夫
BATファイルのショートカット作成
上記のバッチのショートカットを作成して
「詳細設定」を選択し「管理者権限で実行」にチェックをいれておけば
上記のショートカットをクリックでデバイスの再スキャンが実施されます。
(設定に応じて、管理者権限での実行の確認画面が表示されるので押下ください)
あと、このショートカットにショートカットキーを割り当てれば
キーボードから手を放さずにデバイスの再スキャンが実施できます。
まとめ
時々、機嫌が悪くなることもあるけれど、
Surface ドックは便利です。
もう少しすれば、ファームのアップデートできっときっと良くなると思います。
またSurface ドックに限らず、見失いがちなデバイスを持たれる方の役に立てば幸いです。
また、Devconでできることは再スキャンだけではないので、
デバイスマネージャーでできることを自動化したいなーとか思っている人は
以下のDevconのコマンドで見つけることができるかもしれません。
https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon-general-commands