Board logo

标题: [系统增强] [原创]用devcon代替设备管理器!禁用启用任何设备 安装驱动等! [打印本页]

作者: wrz99    时间: 2011-7-27 14:25     标题: [原创]用devcon代替设备管理器!禁用启用任何设备 安装驱动等!

本帖最后由 wrz99 于 2011-7-27 14:36 编辑

devcon是微软发布的一个小工具!

以下参数是我在网上搜集整理的!

命令的用法,通过实践将该命令的相关参数及用法发布如下:
devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]

-r 如果指定它,在命令完成后若需要则重新启动计算机。

<machine> 是目标计算机的名称。
<command> 是将要执行的命令(如下所示)。
<arg>...  是命令需要的一个或多个参数。


install              手动安装设备。

UpdateNI             手动更新设备,无用户提示
update               手动更新设备。
listclass            列出某一安装类别的所有设备。



enable               启用与指定的硬件或实例 ID 匹配的设备。
disable              禁用与指定的硬件或实例 ID 匹配的设备。
remove               删除与特定的硬件或实例 ID 匹配的设备。

rescan               扫描以发现新的硬件。


classfilter          允许修改类别筛选程序。
classes              列出所有设备安装类别。

driverfiles          列出针对设备安装的驱动程序文件。
drivernodes          列出设备的所有驱动程序节点。

find                 查找与指定的硬件或实例 ID 匹配的设备。
findall              查找设备,包括那些未显示的设备。


resources            列出设备的硬件资源。
restart              重新启动与特定的硬件或实例 ID 匹配的设备。
stack                列出预期的设备驱动程序堆栈。
status               列出设备的运行状态。

help                 显示此信息。
hwids                列出设备的硬件 ID。

reboot               重新启动本地计算机。
SetHwID              添加、删除和更改根枚举设备的硬件 ID 的顺序。

*************************以下为命令例子****************************************************

devcon -m:\\test find pci\*
列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)

devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP
安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重新启动计算机。

devcon classes
列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)和描述性名称(例如,“通用串行总线控制器”)。

devcon classfilter upper !filter1 !filter2
删除这两个指定的筛选程序。

devcon classfilter lower !badfilter +goodfilter
用“goodfilter”替换“badfilter”。

devcon driverfiles =ports
列出与 ports 安装类别中的每一个设备关联的文件。

devcon disable *MSLOOP
禁用硬件 ID 以“MSLOOP”结尾(包括“*MSLOOP”)的所有设备。

devcon drivernodes @ROOT\PCI_HAL\PNP0A03
列出设备“ROOT\PCI_HAL\PNP0A03”的所有兼容驱动程序。这可以用来确定为什么选择原配的设备信息 (.inf) 文件而不选第三方 .inf 文件。

devcon enable '*MSLOOP
启用硬件 ID 为“*MSLOOP”的所有设备。单引号指示必须严格按字面解释硬件 ID(换句话说,星号 [“*”] 真的是 一个星号,而不是通配符)。

devcon find *
列出本地计算机上存在的所有设备的设备实例。

devcon find pci\*
列出本地计算机上所有已知的“外围组件互连”(PCI) 设备(如果一个设备的硬件 ID 以“PCI\”为前缀,此命令就认为该设备是 PCI 设备)。

devcon find =ports *pnp*
列出存在的作为 ports 安装类别的成员而且硬件 ID 中包含“PNP”的设备。

devcon find =ports @root\*
列出存在的作为 ports 安装类别的成员而且在枚举树的“root”分支中的设备(实例 ID 以“root\”为前缀)。请注意,有关实例 ID 的格式化方式,不应作任何编程假定。要确定根设备,可以检查设备状态位。此功能包括在 DevCon 中是为了帮助进行调试。

devcon findall =ports
列出 ports 类别的“不存在”的设备和存在的设备。这包括已经被删除的设备、从一个插槽移到另一个插槽的设备,以及在某些情况下由于 BIOS 改变而被不同地枚举的设备。

devcon listclass usb 1394
列出命令中所列的每个类别(本例中是 USB 和 1394)的所有存在的设备。

devcon remove @usb\*
删除所有 USB 设备。被删除的设备列出时将显示其删除状态。

devcon rescan
重新扫描以发现新的“即插即用”设备。

devcon resources =ports
列出由 ports 安装类别中的所有设备使用的资源。

devcon restart =net @'ROOT\*MSLOOP\0000
重新启动环回适配器“ROOT\*MSLOOP\0000”。命令中的单引号指示必须按字面解释实例 ID。

devcon hwids=mouse
列出系统中鼠标类设备的所有硬件 ID。

devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep
将硬件 ID beep 赋予旧式蜂鸣设备。

devcon stack =ports
列出设备预期的驱动程序堆栈。包括设备和类别高层/低层筛选程序,以及控制服务。

devcon status @pci\*
列出实例 ID 以“pci\”开头的每一个存在设备的状态。

devcon status @ACPI\PNP0501\1
列出特定设备实例的状态,在本例中是一个高级配置和电源界面 (ACPI) - 枚举的串行端口。

devcon status @root\rdp_mou\0000
列出 Microsoft 终端服务器或终端服务鼠标驱动程序的状态。

devcon status *PNP05*
列出所有 COM 端口的状态。

devcon update mydev.inf *pnp0501
更新与硬件 ID *pnp0501 严格匹配的所有设备,让它们使用 Mydev.inf 中与硬件 ID *pnp0501 关联的最好的驱动程序。
注意:即使系统上已经存在更好的匹配项,这一更新也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。此更新仅影响与指定的硬件 ID 匹配的设备,不会影响到其子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装此驱动程序。如果需要重新启动计算机,将报告这一情况并且 DevCon 返回一个级别 1 错误。如果指定 -r,在需要重新启动计算机时就会自动重启。

注意
? DevCon 将返回一个在脚本中使用的错误级别:
“0”指示成功。
“1”指示需要重新启动。
“2”指示失败。
“3”指示语法错误。
? 如果您指定 -r 并且需要重新启动,则在处理完所有设备后,将在无任何警告信息的情况下重新启动。
? 如果您指定 -m:\\computer 并且命令对远程计算机不起作用,将报告一个错误。
? 为便于交互,DevCon 允许在实例 ID 中使用通配符。不要根据一台计算机或一种操作系统版本去推测有关另一台计算机或另一种操作系统版本的实例 ID 格式的任何信息。
作者: wrz99    时间: 2011-7-27 14:29

本帖最后由 wrz99 于 2011-7-27 14:37 编辑

下面的是我自已摸索出来的,并可以正常用的命令!与死性不改的方法不太一样!
  1. @ECHO 正在禁用软盘驱动器...
  2. %windir%\system32\devcon.exe /disable *floppy*
复制代码
  1. 每个&符号前都要加^,要不然DEVCON是不认识这个设备的
  2. 如:@USB\VID_413C^&PID_2003\5^&3353F8FB^&0^&1
  3. USB前要加@符号
  4. 如果ID号前有&符号,就在@符号前加个“^”。
  5. ***********************************************************************************************
  6. 如果禁用USB设备,需如下写
  7. 设备ID:USB\VID_413C&PID_2003\5&3353F8FB&0&1
  8. 要写成:devcon disable @USB\VID_413C^&PID_2003\5^&3353F8FB^&0^&1
  9. 2、设备ID不能直接输入,否则会把ID开头相同的一大堆设备都操作一遍,最后还会出几个错误提示;加上双引号也不行,会提示没有设备被禁用/启用;必须这样写:@"设备ID",所以最后的命令格式是:
  10. devcon disable @"设备ID"
  11. 如:
  12. devcon disable @"PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&172A2BDD&0&18F0"
  13. ***********************************更新摄像头驱动,已测成功**************************************
  14. [b]::心得1----用兼容ID更新范围较广,非常适用!
  15. ::心得1----不能用“install ”、“UpdateNI ”命令,否则不成功!![/b]
  16. ::用硬件ID更新驱动:
  17. devcon Update C:\wrz_tool\摄像头_已去SW\usbvideo.inf USB\VID_0C45^&PID_62F0^&MI_00
  18. ::用兼容ID更新驱动:
  19. ::扫描
  20. devcon remove USB\Class_0e
  21. devcon rescan USB\Class_0e
  22. devcon Update C:\wrz_tool\摄像头_已去SW\usbvideo.inf USB\Class_0e
  23. ::兼容ID AMD CPU:
  24. devcon remove ACPI\Processor
  25. ::扫描
  26. devcon rescan ACPI\Processor
  27. devcon Update C:\wrz_tool\ADM_CPU\AmdPPM.inf ACPI\Processor
  28. ::Realtek声卡兼容:
  29. devcon Update C:\wrz_tool\Realtek_AUDIO\AHDA01.inf HDAUDIO\FUNC_01
  30. ************************************************************************************************
  31. ATI High Definition Audio兼容ID:
  32. HDAUDIO\FUNC_01&VEN_1002&DEV_791A&REV_1000
  33. HDAUDIO\FUNC_01&VEN_1002&DEV_791A
  34. HDAUDIO\FUNC_01&VEN_1002
  35. HDAUDIO\FUNC_01
  36. HD 4200显卡兼容ID:
  37. PCI\VEN_1002&DEV_9710&REV_00
  38. PCI\VEN_1002&DEV_9710
  39. PCI\VEN_1002&CC_030000
  40. PCI\VEN_1002&CC_0300
  41. PCI\VEN_1002
  42. PCI\CC_030000
  43. PCI\CC_0300
  44. ***********************************************************************************************
  45. ************************************************************************************************
  46. ;禁用GF6200显卡
  47. devcon /disable PCI\VEN_10DE
  48. ;启用GF6200显卡
  49. devcon /enable PCI\VEN_10DE
  50. ***********************************************************************************************
  51. 禁用网卡:
  52. evcon disable *DEV_8139*
  53. devcon enable *DEV_8136*
  54. devcon disable *DEV_0201* //禁用此PCI设备
  55. devcon enable *DEV_0201* //启用此PCI设备
  56.    
  57. devcon.exe disable USB\Class_ff
  58. 禁用摄像头
  59. devcon.exe disable USB\Class_06
  60. 禁用数码相机,包括数码相机附带的可移动磁盘
  61. devcon.exe disable USB\Class_03
  62. 禁用USB鼠标&键盘
  63. 禁用扫描仪
  64. devcon.exe enable USB\Class_ff
  65. 关闭类设备:
  66. devcon.exe disable USB\Class_08
  67. 禁用U盘,即删除U盘,不管你有N个U盘统统一起删除
  68. devcon.exe disable USB\Class_06
  69. 禁用数码相机,包括数码相机附带的可移动磁盘
  70. devcon.exe disable USB\Class_03
  71. 禁用USB鼠标&键盘
  72. devcon.exe disable USB\Class_ff
  73. ;显卡
  74. devcon.exe remove =Display
  75. ; 显卡
  76. devcon.exe remove PCI\CC_03*
  77. ; 声卡
  78. devcon.exe remove PCI\CC_04*
  79. ; 多媒体
  80. 设备
  81. devcon.exe remove =Media
  82. ; 监视器
  83. 设备
  84. devcon.exe remove =monitor
  85. ; 监视器
  86. devcon.exe remove DISPLAY\*
  87. ; 鼠标
  88. devcon.exe remove =Mouse
  89. ; USB 设备
  90. devcon.exe remove =USB
  91. ; USB HOST and SMBus
  92. devcon.exe remove PCI\CC_0C*
  93. ; USB存储卷
  94. devcon.exe remove @USBSTOR\*
  95. ; USB设备
  96. devcon.exe remove @USB\*
  97. ; 人机接口设备
  98. devcon.exe remove @HID\*
  99. ; 打印
  100. 设备
  101. devcon.exe remove =Printer
  102. ; 网络 设备
  103. devcon.exe remove =Net
  104. ; 网卡
  105. devcon.exe remove PCI\CC_02*
  106. ; Modem 设备
  107. devcon.exe remove =Modem
  108. ; 端口
  109. devcon.exe remove =ports
  110. ; 游戏端口
  111. devcon.exe remove PCI\CC_09*
  112. ; 磁盘驱动器
  113. devcon.exe remove =DiskDrive
  114. ; 磁盘卷
  115. devcon.exe remove =Volume
  116. ; 磁盘卷
  117. devcon.exe remove @STORAGE\*
  118. ; CDROM 设备
  119. devcon.exe remove =CDROM
  120. ; IDE设备
  121. devcon.exe remove @ide\*
  122. ; IDE 通道
  123. devcon.exe remove @PCIIDE\*
  124. ; SCSI 设备
  125. devcon.exe remove =SCSIAdapter
  126. ; 芯片组
  127. devcon.exe remove PCI\CC_0604*
  128. ; CPU
  129. devcon.exe remove ACPI\Processor
  130. ; 其它设备
  131. devcon.exe remove @acpi\*
  132. devcon.exe remove @ACPI_HAL\*
  133. devcon.exe remove @PCI\*
  134. devcon.exe remove @ROOT\DMIO\*
  135. devcon.exe remove @ROOT\FTDISK\*
  136. devcon.exe remove @ROOT\RDP*
  137. devcon.exe remove @ROOT\DISPLAY\*
  138. devcon.exe remove @LPTENUM\*
  139. 各设备分类(class)标准 列表
  140. 00 Use class information in the Interface Descriptors
  141. 01 Audio
  142. 02 Communications and CDC Control
  143. 03 HID (Human Interface Device)
  144. 05 Physical
  145. 06 Image
  146. 07 Printer
  147. 08 Mass Storage
  148. 09 Hub
  149. 0A CDC-Data
  150. 0B Smart Card
  151. 0D Content Security
  152. 0E Video
  153. 0F Personal Healthcare
  154. DC Diagnostic Device
  155. E0 Wireless Controller
  156. EF Miscellaneous
  157. FE Application Specific
  158. FF Vendor Specific
复制代码

作者: wrz99    时间: 2011-7-27 14:30

论坛上讨论DVECON的人很少,不知为什么
作者: tmplinshi    时间: 2011-7-27 15:12

禁用网卡:
evcon disable *DEV_8139*
devcon enable *DEV_8136*


建议这样:
  1. devcon disable =net pci\*
  2. devcon enable =net pci\*
复制代码

作者: wrz99    时间: 2011-7-27 15:26

回复 4# tmplinshi


    为什么要加个=net ? 这里不太明白!
作者: tmplinshi    时间: 2011-7-27 15:37

回复 5# wrz99


这样就不用指定多个这样的:
*DEV_8139*
*DEV_8136*

作者: CUer    时间: 2011-7-27 17:33

回复 3# wrz99


因为很少有人用它,自然很少讨论。
作者: wrz99    时间: 2011-7-27 19:06

回复 6# tmplinshi


    哦,原来是这样!
作者: liupei261845    时间: 2011-8-24 16:58

这个代码太复杂了吧




















高清桌面壁纸 风景桌面壁纸 rift gold




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2