文件:DevCon 命令行实用工具 - 设备管理器的替换选项)
适用于
本文的发布号曾为 CHS311272
概要
"DevCon"实用工具是一种命令行实用工具,可以替代设备管理器。它允许您启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供对开发人员有用但无法在设备管理器中直接获得的信息。

DevCon 是为在 Windows 2000 和 Windows XP 上使用而设计的。它无法运行于 Microsoft Windows 95、Windows 98 或 Windows ME。
更多信息
DevCon 不可再分发。提供它是为了用作调试和开发工具。您可以随意修改 DevCon 以供个人专用。此示例演示如何有效地配合使用 SetupAPI 和 CfgMgr32 API 来枚举设备和执行设备操作。

下面的文件可从 Microsoft 下载中心下载:

DevCon.exe

发行日期:2001 年 11 月 1 日

有关如何下载 Microsoft 支持文件的其他信息,请单击以下文章编号,查看 Microsoft 知识库文章:
119591 How to Obtain Microsoft Support Files from Online Services(如何从联机服务获取 Microsoft 支持文件)

Microsoft 已扫描此文件没有病毒。在发表当日 Microsoft 使用了最新的病毒检测软件以扫描此文件是否有病毒。此文件保存在安全服务器上,以防对它进行任何未经授权的更改。

DevCon.exe 文件包含以下文件:

文件 说明
I386\DevCon.exe 32 位 DevCon 工具二进制文件。在 64 位 Windows 上将不会完全发挥作用。
Ia64\DevCon.exe 64 位 DevCon 工具二进制文件。

备注:DevCon 的源代码及相关文档也包括在 Windows XP DDK(可从 http://www.microsoft.com/ddk/ 下载)中,位于 DDK 根目录 \Src\Setup\Devcon 下。
使用DevCon
DevCon 是具有内置文档的命令行实用工具。如果您运行命令行 devcon help,则将显示下面的命令及说明列表。命令 devcon help command 将提供有关任一命令的更详细的帮助。其中的某些命令允许您指定远程目标计算机。在 WOW64 上也可使用使用 DevCon 的 32 位版本。 Device Console Help:
devcon.exe [-r] [-m:\\] [...]
-r if specified will reboot machine after command is complete, if needed.
is name of target machine.
is command to perform (see below).
... is one or more arguments if required by command.
For help on a specific command, type:devcon.exe help
classfilter Allows modification of class filters.
classes List all device setup classes.
disable Disable devices that match the specific hardware or
instance ID。
driverfiles List driver files installed for devices.
drivernodes Lists all the driver nodes of devices.
enable Enable devices that match the specific hardware or
instance ID。
find Find devices that match the specific hardware or
instance ID。
findall Find devices including those that are not present.
help Display this information.
hwids Lists hardware ID's of devices.
install Manually install a device.
listclass List all devices for a setup class.
reboot Reboot local machine.
remove Remove devices that match the specific hardware or
instance ID。
rescan Scan for new hardware.
resources Lists hardware resources of devices.
restart Restart devices that match the specific hardware or
instance ID。
stack Lists expected driver stack of devices.
status List running status of devices.
update Manually update a device.
DevCon 命令示例
devcon find *

列出本地计算机上所有设备的设备实例。

devcon find pci\*

列出本地计算机上所有已知的外围组件互连 (PCI) 设备(此命令假定:如果设备具有以"tCI\"开头的硬件 ID,则该设备是 PCI 设备)

devcon -m :\\test find pci\*

列出计算机"test"上的所有 PCI 设备。(您可以使用 -m 来指定目标计算机。需要对计算机进行进程间通信 (IPC) 访问的许可。)

devcon classes

列出所有已知的安装类。输出中包含未本地化的简称(例如,"USB")和描述性名称(例如,"Universal Serial Bus controllers")。

devcon listclass usb 1394

为指定的每个类(在本例中为 USB 和 1394)列出所有存在的设备。

devcon find =ports *pnp*

列出是 ports 安装类的成员且其硬件 ID 包含"tNP"的已存在设备。

devcon find =ports @root\*

列出是 ports 安装类的成员且位于 enum 树的"root"分支中的已存在设备(实例 ID 以"root\"开头)。请注意,有关实例 ID 的格式化方式,不应作任何编程假定。若要确定根设备,可以检查设备状态位。为了帮助进行调试,DevCon 中包括了此功能。

devcon findall =ports

列出 ports 类的"不存在"设备以及已存在设备。这将包括已经移除的设备、已经从一个插槽移动到另一插槽的设备以及(在某些情况下)由于 BIOS 更改而以不同方式枚举的设备。

devcon status @pci\*

列出其实例 ID 以"pci\"开头的已存在设备的状态。

devcon status @ACPI\PNP0501\1-

列出特定设备实例的状态,在本例中为高级配置与电源接口 (ACPI) 枚举的串行端口。

devcon status @root\rdp_mou\0000

列出 Microsoft 终端服务器或终端服务鼠标驱动程序的状态。

devcon status *PNP05*

列出所有 COM 端口的状态。

devcon resources =ports

列出 ports 安装类中的所有设备所使用的资源。

devcon driverfiles =ports

列出与 ports 安装类中的每个设备关联的文件。

devcon stack =ports

列出设备的期望驱动程序堆栈。这包括设备和类的高层/低层筛选器以及控制服务。

devcon drivernodes @ROOT\PCI_HAL\PNP0A03

列出设备"ROOT\PCI_HAL\PNP0A03"的所有兼容驱动程序。这可用于确定选择选择某一 INF 文件而不是第三方 INF 的原因。

devcon remove @usb\*

移除所有 USB 设备。将列出已移除的设备及其移除状态。

devcon rescan

重新扫描以查找新的即插即用设备。

devcon update mydev.inf *pnp0501

更新与硬件 ID"*pnp0501"完全匹配的所有设备,以便使用 Mydev.inf 中与硬件 ID *pnp0501 关联的最佳驱动程序。请注意,即使系统上已经存在更好的匹配项,这也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。它仅影响与指定的硬件 ID 匹配的设备,而不影响子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装驱动程序。如果需要重新启动,则会提示您这样做,而且 DevCon 将返回错误级别"1"。如果指定了"-r",则将导致自动重新启动(如果需要重新启动)。

devcon -r install Windows directory \Inf\Netloop.inf *MSLOOP

安装 Microsoft 环回适配器的新实例。这将创建新的根枚举的设备节点,以允许您安装"虚拟设备"(如环回适配器)。此命令还以无提示方式重新启动计算机(如果需要重新启动)。

devcon disable *MSLOOP

禁用其硬件 ID 以"MSLOOP"(包括"*MSLOOP")结尾的所有设备。

devcon enable '*MSLOOP

启用其硬件 ID 为"*MSLOOP"的所有设备。单引号指示必须按字面解释硬件 ID(换句话说,星号 ["*"] 实际上只是 一个星号;它不是通配符)。

devcon restart =net @'ROOT\*MSLOOP\0000

重新启动环回适配器"ROOT\*MSLOOP\0000"。单引号指示必须按字面解释实例 ID。

Devcon classfilter upper !filter1 !filter2

删除两个指定的筛选器。

Devcon classfilter lower !badfilter +goodfilter

将"badfilter"替换为"goodfilter"。

备注
Devcon 将返回在脚本中使用的错误级别:
"0"指示成功。
"1"指示需要重新启动。
"2"指示失败。
"3"指示语法错误。

如果指定了 -r 而且需要重新启动,则在处理完所有设备后会进行重新启动,而且不发出警告。
如果指定了-m :\\ computer 但此命令对于远程计算机不起作用,则会报告一个错误。
Devcon 允许在实例 ID 中使用通配符,以便于进行交互。不要根据一台计算机或一种操作系统版本去推测另一台计算机或另一种操作系统版本的实例 ID 格式。
这篇文章中的信息适用于:
Microsoft Windows 2000 驱动程序开发工具包 (DDK)
Microsoft Windows XP 驱动程序开发工具包 (DDK)
最近更新: 2003-1-13 (1.1)
关键字 kbDDK kbDSupport kbfile kbGrpDSNTDDK kbhowto KB311272

Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的或衍生性的损失或任何种类的损失,均不负任何责任,无论该等诉讼是合同之诉、疏忽或其它侵权行为之诉。

 posted on 2006-03-06 16:45  月の祭司  阅读(6143)  评论(0编辑  收藏  举报