弊社には、いくつかのデバイスのテストに使用するコンピューターがあります。ときどき、テスターは割り当てられた COM ポートを削除して解放し、1 からやり直す必要があります。最近、同じ COM ポートが複数のデバイスに割り当てられており (約 8 台が同時に接続されています)、OS によって割り当てられた番号と一致するようにテスト コードを変更する必要もあります。
番号の重複が報告された問題ですが、1 日に何度も COM ポートをチェックしてコードを更新する必要があることも問題だと思います。
でデバイスマネージャ非表示のデバイスを表示するようにオンにすると、何百ものデバイスが表示されます。
スクロールバーのサイズから、リストがかなり大きいことがわかります。それぞれをクリックしてアンインストールすることもできますが、1 つずつ実行するのは非常に面倒です。そのため、コマンド ラインの代替手段を要求し、ポートをリセットする必要があるときにダブルクリックできるスクリプトを作成できるようにしています。
もちろん、これを可能にするソフトウェアがあれば、それも良いことです。
答え1
アクティブな USB ポートを削除します。
devcon /r remove @usb\*
アクティブな LPT ポートと COM ポートを削除します。
devcon /r remove =ports
すべての COM ポートと LPT ポートを照会します。
devcon FindAll =Ports
アクティブな USB ポートを照会します。
devcon status @usb\*
すべての USB ポートをクエリ - 異なる結果:
devcon findall @usb\*
devcon findall =USB
すべてのデバイスを列挙します:
devcon hwids * > hwids.txt
WDKの一部、Windows ドライバー キット バージョン 7.1.0。
古いバージョン (2003-01-29) は Windows 7 (del デバイスではない) では動作しません。 devcon 旧バージョン 2003-01-29
代替案 1 - PnPUtil
代替案2 - レジストリキー、サブキーでUSBデバイスを検索
全部削除ではありません!
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI
例:
reg delete "HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Seagate&Prod_USB_2.0_Cable&Rev_0148" /f
ポートが列挙される場合はdevcon FindAll =Ports
、このレジストリ キーを削除します:|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI
ポートが列挙される場合はdevcon status @usb\*
、このレジストリ キーを削除します:|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
例:
ありがとう、geermc4! devcon をテストしました。Windows ドライバー キット バージョンでは、Windows 7 で正常に動作します。
ハードウェア プロファイルは Windows XP でのみ設定できます。Windows 7 では設定できません。これは設計によるものです... バックアップHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
...
答え2
私も何百ものユニットをテストする必要があります。しかし、コマンド ライン「devcon /r remove @usb*」と「devcon /r remove =ports」を使用しようとしましたが、うまくいきませんでした。WDK もダウンロードしました (使い方はわかりません)。会話を読んで混乱しました。@geermc4 と @STTR、どのように実行したかをもう一度説明していただけますか?