devcon disable cannot disable device not found

2019-02-09 18:19发布

问题:

I'm on Windows 8.1 trying to disable my clickpad programatically. I've installed the correct x64 bit version of devcon as noted here. I can find the correct device but devcon disable with the same parameters fails.

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.

Which is rather confusing. It obviously finds the right device, but then reports "No matching devices found". What the heck?

Please note that I am aware of this similar question but, in addition to not having an accepted answer, that question has a different error and is likely using the wrong version of devcon.

回答1:

No Matching Devices is the way that windows tells you that it cannot find or access the devices you are looking for. There can be a couple of causes for this:

  1. Incorrect Permissions caused by not running the command prompt/BAT as an administrator. Simply right-click the relevant access method and select 'Run as administrator"
  2. Incorrect Access caused by running the wrong version of devcon.exe. As a remnant of the shift to 64 bit computer there are two version of devcon located in the 'Tools' folder, one for x86 and one for x64, ensure that you are running the correct version for your computer and you should be able to perform your tasks without issue.


回答2:

You are using the wrong "spelling" in your command.

This should work:

devcon.exe disable "ACPI\SYN1ECA*"

If you already found the exact device you want to disable you can do it like this:

devcon.exe disable "@<instace ID>"

In your case:

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

If this also doesn't work you should use the remove command. remove works almost always, but the device will be back after you restart the system.

devcon.exe remove "@<instance ID>"


回答3:

No matching devices found. is a confusing way for devcon to tell u to run the command elevated. this is without elevation

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.

this is with elevation

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.


回答4:

Look at superuser question

Resume:

To download correct version devcon x86/x64. Run the devcon commands in cmd.exe with administrative privileges

To block/unblock:

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*

Sometimes devcon does not disable:

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

In this case, the only solution is replace the command: "disable" by "remove":

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

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

But devcon is not a permanent solution for locking and unlocking devices. The test is that you can lock a usb device and then run bash script renewusb_2k.bat, and you will see that the script reinstall the usb drivers again and the locked usb device becomes accessible again.