windows devcon disable无法禁用未找到的设备

y53ybaqx  于 2022-11-18  发布在  Windows
关注(0)|答案(5)|浏览(501)

我在Windows 8.1上尝试通过编程禁用我的点击板。我已经安装了正确的x64位版本的devcon as noted here。我可以找到正确的设备,但使用相同参数的devcon disable失败。

PS C:\...\7600.16385.win7_wdk.100208-1538\tools\devcon\amd64> .\devcon.exe disable 'ACPI\SYN1ECA*'
ACPI\SYN1ECA\4&22077A96&0                                   : Disable failed
No matching devices found.

这相当令人困惑。它显然找到了正确的设备,但随后报告“没有找到匹配的设备”。搞什么鬼?
请注意,我知道this similar question,但除了没有可接受的答案外,该问题还有一个不同的错误,可能是使用了错误的devcon版本。

du7egjpx

du7egjpx1#

No Matching Devices是Windows通知您找不到或无法访问您正在查找的设备的方式。可能有以下几个原因:

1.不正确的权限是由于未以管理员身份运行命令提示符/BAT而导致的。只需右键单击相关的访问方法并选择“以管理员身份运行”
1.不正确的访问是由于运行错误版本的devcon.exe造成的。作为向64位计算机转移的遗留物,“Tools”文件夹中有两个版本的devcon,一个用于x86,另一个用于x64,请确保您运行的是适用于您的计算机的正确版本,您应该能够顺利执行任务。

nzk0hqpo

nzk0hqpo2#

您在命令中使用了错误的“拼写”。
这应该可行:

devcon.exe disable "ACPI\SYN1ECA*"

如果您已经找到要禁用的确切设备,则可以执行以下操作:

devcon.exe disable "@<instace ID>"

在您的情况下:

devcon.exe disable "@ACPI\SYN1ECA\4&22077A96&0"

如果这也不起作用,你应该使用remove命令。remove几乎总是起作用的,但设备会在你重新启动系统后恢复。

devcon.exe remove "@<instance ID>"
qaxu7uf2

qaxu7uf23#

**找不到匹配的设备。devcon用这种方式来告诉您正在运行未提升的命令会令人困惑。这是未提升的命令:

devcon restart "PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09"
PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09\4&21A1C3AE&0&00E5: Restart failed
No matching devices found.

这是与海拔:

devcon restart "PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09"
PCI\VEN_10EC&DEV_8168&SUBSYS_85051043&REV_09\4&21A1C3AE&0&00E5: Restarted
1 device(s) restarted.

要提升权限,请在命令提示符处单击鼠标右键,然后选择“以管理员身份运行”。

t2a7ltrp

t2a7ltrp4#

请看superuser question

简历:

下载正确版本的devcon x86/x64。使用管理权限运行cmd.exe中的devcon命令
冻结/解冻:

USB\VID_1C4F&PID_0002&MI_01\6&1578F7C2&0&0001   : USB storage device

%windir%\system32\devcon.exe disable *VID_1C4F*
and
%windir%\system32\devcon.exe enable *VID_1C4F*

有时devcon不会禁用:

USB\VID_1C4F&PID_0002&MI_01\6&1578F7C2&0&0001 : Disabled
HID\VID_1C4F&PID_0002&MI_00\7&2B89365C&0&0000 : Disable failed

在这种情况下,唯一的解决方案是替换命令:通过“删除”“禁用”:

%windir%\system32\devcon.exe remove *VID_1C4F*

HID\VID_1C4F&PID_0002&MI_00\7&2B89365C&0&0000 : Removed
1 device(s) were removed.

但是devcon并不是一个锁定和解锁设备的永久解决方案,测试是你可以锁定一个usb设备,然后运行bash脚本renewusb_2k.bat,你会看到脚本再次重新安装usb驱动程序,锁定的usb设备再次变得可访问。

k4ymrczo

k4ymrczo5#

Python中的编程方法。最后对我也有效的当然是 * 以管理员身份运行 * 我的应用程序和删除设备/重新扫描技巧:

DevConFX3Regex = re.compile(r'(?P<device_id>USB[^\s]*)\s+ : FX3')
       DevConCOMRegex = re.compile(r'(?P<device_id>[^\s]*)\s+ : .*\(COM[0-9]{1,3}\).*')

       def auto_repair_usb_com_ports(self):
          os.system('devcon findall * > DevCon.txt')
          
          with open('DevCon.txt', 'r') as devcon_text:
             devcon_text = devcon_text.read()
             
          for match in self.DevConFX3Regex.finditer(devcon_text):
             device_id = match.group("device_id")
             print(device_id)
             device_id = f'"@{device_id}"'
             os.system(f'devcon remove {device_id}')
             
          for match in self.DevConCOMRegex.finditer(devcon_text):
             device_id = match.group('device_id')
             device_id = f'"@{device_id}"'
             os.system(f'devcon remove {device_id}')
             
          os.system('devcon rescan')

相关问题