如何从 Windows 7 上的命令行删除所有 COM 端口?

如何从 Windows 7 上的命令行删除所有 COM 端口?

我们有一台用于测试某些设备的计算机。每隔一段时间,测试人员就需要进入并移除已分配的 COM 端口,以便释放它们并从 1 开始。最近,他们一直将同一个 COM 端口分配给几个设备(大约 8 个同时连接),而且他们还需要更改测试代码以匹配操作系统分配的任何数字。

报告的问题是重复的数字,但我认为“每天必须检查 COM 端口并更新代码”多次也是一个问题。

装置经理,如果我打开显示隐藏的设备,我会看到数百个!

在此处输入图片描述

从滚动条的大小可以看出列表非常大。我可以点击每个端口然后卸载,但逐个卸载太麻烦了,所以我要求提供命令行替代方案,这样我就可以编写一个脚本,当他们需要重置端口时,只需双击即可。

当然,如果有某种软件可以实现这一点,那么也很好。

答案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(不能删除设备)。 devcon 旧版本 2003-01-29

DevCon 的源代码

替代方案 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,你能再解释一下你是怎么做的吗?

相关内容