使用Devcon删除不存在的硬件?

我正在使用Windows XP SP3自动从机器上删除USB打印机。 为此,我使用微软的Devcon Utility。

运行命令:

devcon findall *hp* 

返回:

 USBPRINT\HEWLETT-PACKARDHP_LASERJET_PROFESSIONAL_P1606DN\7&8885729&0&USB001: HP LaserJet Professional P1606dn 1 matching device(s) found. 

运行命令:

 devcon remove *USBPRINT* 

返回:

 No devices removed. 

我尝试了硬件ID和通配符的多个组合,没有运气。 将设备插入计算机并运行上面提到的remove命令将删除硬件。

这个问题来自我使用devconpipe道来查找,以确定是否插入设备,以便它可以自动configuration。 如果我不能删除它,即使没有插入,脚本也会被我的脚本检测到。

我已经用多个USB打印机和一个USB鼠标testing过了,它们都performance出相同的行为,这使我相信这对Devcon来说是正常的行为。

有没有解决方法? 如何删除不再连接的硬件条目?

Devcon工作。 你只需要确保你的操作系统的目标是devcon的正确版本。

看看这个链接http://freneticrapport.blogspot.com/2011/05/windows-hiddennot-connected-device.html

为了为您的操作系统安装正确的devcon版本:

  • 安装Windows驱动程序工具包
  • 转到开始 – >程序 – >开发工具包 – > WDK XXXX – >构build环境 – > Windows [目标] – > Windows [目标]免费构build环境,用您正在构build的适当版本的Windowsreplace[目标]。
  • 转到WDK安装目录中的src \ setup \ devcon文件夹并运行: build -ceZ

然后您可以使用以下命令删除设备:

 devcon remove "@PCI\VEN_1000&DEV_0060&SUBSYS_1F0C1028&REV_04\4&10333E29&0&0030" 

请注意引号和@符号,因为这些是需要删除隐藏的设备的。

这是不可能的。 Devcon 无法删除当前未连接的硬件。 这是打算的行为。 我应该更好地阅读文档。

findall命令search所有硬件,连接与否。 我应该一直在使用find命令,它只search当前连接的硬件。

devon可以并将删除GregL提到的非现有硬件。

该string必须正确形成。

以下batch file将匹配基于inputstring的所有设备并将其删除:

 for /f %%i in ('devcon findall *%1*') do (devcon remove "@%%i")