devcon.exe は USB デバイスを無効にできません

devcon.exe は USB デバイスを無効にできません

Windows 10 タブレットに USB バーコード スキャナーを接続しています。Windows で実行されている PowerShell スクリプトからこのバーコード スキャナーのオン/オフを切り替える必要があります。

オンラインで Microsoft のドキュメントを読むと、devcon.exe を使用するのが最善のようです。

適切な (x64) Windows キット パッケージをインストールし、devcon.exe を使用してデバイスの検索、デバイスの削除、デバイスの追加、デバイスのステータスの取得などを実行できるようになりました。

特定のデバイスで「devcon 無効化」を実行しようとすると、devcon はデバイスが存在しないと表示します。

Windowsからデバイスを検査すると、ベンダーID(0x065A)を読み取ることができました。

(私は以下のコマンドを試しました管理者PowerShell ウィンドウ)

PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" status USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3
    Name: USB Input Device
    Driver is running.
1 matching device(s) found.

すべて順調

PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" enable USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3                         : Enabled
1 device(s) are enabled.

デバイスはすでに動作していたのであまり役に立ちませんが、少なくともdevconがデバイスを認識できることは確認できます。

さて、問題の部分です

PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" disable USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3                         : Disable failed
No matching devices found.

何が間違っているのか分かりますか?

答え1

devcon なしで PowerShell でこれを実行したい場合は、非常に簡単です。

実行してget-pnpdeviceデバイスのリストを取得します。例ではインスタンス名を使用しているため、フレンドリ名を使用できます。以下のコードで、「USB 入力デバイス」と表示されている部分を、バーコード スキャナーのフレンドリ名に変更します。スクリプトは、無効を有効に変更することで元に戻すことができます。

Get-PnpDevice | Where-Object { $_.FriendlyName -match 'USB Input Device' } | Disable-PnpDevice -Confirm:$false

関連情報