用命令行控制Windows的设备
首先呢,你要从微软网站上下载一个叫Devcon的工具:http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe 把它解出来(哪来的鸡蛋,我闪!)
如果你对它的实现感兴趣的话,你可以在DDK中找到它的源码:DDK root\Src\Setup\Devcon。如果只是用用它方便的话不妨接着看它的使用。
我们看看它都有些什么参数:
devcon.exe [-r] [-m:\\<machine>] <command> [<arg>]
-r if specified will reboot machine after command is complete, if needed.
<machine> 目标机器名字.
<command> 命令(见下面).
<arg>传给命令的参数.
For help on a specific command, type: devcon.exe help <command>
classfilter 允许修改class filters.
classes 显示设备安装classes.
disable 用指定的硬件名称或者instance ID禁用设备
driverfiles 列出设备安装的驱动文件.
drivernodes 显示设备的所有节点的驱动.
enable 用指定的硬件名称或者instance ID启用设备.
find 用指定的硬件名称或者instance ID查找设备.
findall 查找所有硬件设备包括不显示的.
help 显示帮助信息.
hwids 显示设备硬件ID.
install 手动安装设备.
listclass 显示所有设备的安装 class.
reboot 重启本地机器.
remove 用指定的硬件名称或者instance ID删除设备.
rescan 从新扫描硬件信息.
resources 显示设备使用的硬件资源.
restart 用指定的硬件名称或者instance ID重启设备.
stack 列出设备的驱动堆栈.
status 列出设备的状态.
update 手动更新设备驱动.
UpdateNI 不显示用户界面的更新设备状态
SetHwID 添加、删除、编辑硬件ID的顺序. 现在看看例子:
devcon -m:\\test find pci\*
如果你开启了test机器上的IPC$的话,就可以列出test上所有知道的PCI设备
devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP
安装一个新的Microsoft loopback adaptor实例,如果要重启的话,该命令会自动重启
devcon classes
显示所有知道的安装类。包括未认识的设备如: "USB" 和描述名字如:"Universal Serial Bus controllers".
devcon classfilter upper !filter1 !filter2
删除两个指定的classfilter .
devcon classfilter lower !badfilter +goodfilter
用"goodfilter"替换"badfilter".
devcon driverfiles =ports
列出被ports安装类使用的设备驱动文件
devcon disable *MSLOOP
禁用所有硬件ID结尾有"MSLOOP"的设备
devcon drivernodes @ROOT\PCI_HAL\PNP0A03
列出所有 ROOT\PCI_HAL\PNP0A03的兼容驱动.
devcon enable '*MSLOOP
启用所有硬件ID有"*MSLOOP". 用'修饰的*不再是通配符,而是普通字符
devcon find *
列出所有设备实例.
devcon find pci\*
列出所有本地的PCI设备
devcon find =ports *pnp*
列出 ports 中包含"PNP"的硬件设备.
devcon find =ports @root\*
列出所有在顶层的 ports .
devcon listclass usb 1394
显示安装类是 USB 和 1394的设备.
devcon remove @usb\*
删除所有USB设备
devcon rescan
重新扫描即插即用设备.
devcon resources =ports
列出ports 使用的资源.
devcon restart =net @'ROOT\*MSLOOP\0000
重启 loopback adaptor ROOT\*MSLOOP\0000.
devcon hwids=mouse
显示所有鼠标设备.
devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep
关联设备 beep和the legacy beep device.
devcon status @pci\*
列出所有PCI设备的状态.
Lists the status of all COM ports.
devcon update mydev.inf *pnp0501
强制更新硬件ID有pnp0501 的设备使用Mydev.inf 驱动.
执行该命令后可能返回结果1 级错误,除非你指定了 -r, 让机器自动重启.
错误等级:
0:表示成功
1:表示需要重启
2:表示失败
3:语法错误