PnPUtil 和 DevCon 都是微软提供的用于管理设备和驱动程序的命令行工具。它们在某些方面有所不同,而微软更倾向于推荐使用 PnPUtil 的原因主要包括以下几点:
内置支持:PnPUtil 是 Windows 操作系统的一部分,因此可以在所有支持的 Windows 版本上直接使用,而 DevCon 需要单独下载并安装。
数字签名支持:PnPUtil 具有对数字签名的良好支持。它能够验证设备驱动程序的数字签名,并帮助用户确保驱动程序的真实性和完整性。
适用性广泛:PnPUtil 可以用于管理各种类型的设备,包括网络、存储、打印和其他硬件设备。它可以添加、删除和禁用设备驱动程序。
简化的语法:相对于 DevCon,PnPUtil 的命令语法更加简单易懂,更符合一般用户的使用习惯。
总的来说,微软推荐使用 PnPUtil 是因为它作为内置工具具有更广泛的适用性和更好的兼容性,并且支持数字签名验证,使设备和驱动程序的管理更加方便和安全。
PnPUtil 和 DevCon 都是微软提供的用于管理设备和驱动程序的命令行工具,它们之间的主要区别在以下几个方面:
功能:PnPUtil 主要用于添加、删除和禁用设备驱动程序,而 DevCon 更多用于查询和控制设备状态和属性,例如列出可用设备、启用或禁用特定设备、重新启动设备等。
命令语法:PnPUtil 的命令语法相对简单易懂,而 DevCon 则需要更复杂的命令语法。
数字签名验证:PnPUtil 具有对数字签名的良好支持。它能够验证设备驱动程序的数字签名,并帮助用户确保驱动程序的真实性和完整性。而 DevCon 不支持数字签名验证。
内置支持:PnPUtil 是 Windows 操作系统的一部分,因此可以在所有支持的 Windows 版本上直接使用,而 DevCon 需要单独下载并安装。
适用范围:PnPUtil 可以用于管理各种类型的设备,例如网络、存储、打印等设备,而 DevCon 主要是用于管理硬件设备。
总的来说,PnPUtil 和 DevCon 都是用于管理设备和驱动程序的工具,但它们的功能、语法和适用范围各有所不同。用户可以根据自己的需求选择其中之一来管理设备和驱动程序。
除了 PnPUtil 和 DevCon,还有一些其他工具可用于设备和驱动程序的管理。以下是其中一些常见的工具:
Device Manager(设备管理器):这是 Windows 操作系统中内置的图形界面工具,用于查看和管理计算机上安装的硬件设备和驱动程序。可以通过设备管理器来添加、删除、禁用、启用设备,更新驱动程序等操作。
Windows PowerShell:PowerShell 是一种强大的命令行脚本环境,可用于管理各个方面的 Windows 操作系统。它提供了许多与设备和驱动程序相关的命令和模块,可以进行设备的查询、控制和配置。
WMIC(Windows Management Instrumentation Command-line):WMIC 是 Windows 上的命令行实用程序,用于管理操作系统和硬件设备。可以使用 WMIC 查询和控制设备驱动程序,例如启动、停止、卸载等操作。
Driver Verifier Manager(驱动程序验证管理器):这是一个 Windows 工具,用于验证和检测设备驱动程序的问题。它可以帮助识别和解决驱动程序引起的系统稳定性和性能问题。
这些工具在不同的场景中有不同的用途和优势,用户可以根据实际需求选择合适的工具来管理设备和驱动程序。
pnputil /?
Microsoft PnP 工具
PNPUTIL [/add-driver <...> | /delete-driver <...> |
/export-driver <...> | /enum-drivers |
/enum-devices [<...>] | /enum-interfaces [<...>] |
/disable-device <...> | /enable-device <...> |
/restart-device <...> | /remove-device <...> |
/scan-devices [<...>] | /?]
命令:
/add-driver <filename.inf | *.inf> [/subdirs] [/install] [/reboot]
将驱动程序包添加到驱动程序存储中。
/subdirs - 遍历驱动程序包的子目录。
/install - 在任何匹配的设备上安装/更新驱动程序。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
添加驱动程序包:
pnputil /add-driver x:\driver.inf
添加多个驱动程序包:
pnputil /add-driver c:\oem\*.inf
添加和安装驱动程序包:
pnputil /add-driver device.inf /install
/delete-driver <oem#.inf> [/uninstall] [/force] [/reboot]
从驱动程序存储中删除驱动程序包。
/uninstall - 从任何使用驱动程序包的设备中卸载驱动程序包。
/force - 删除驱动程序包,即使有设备正在使用它。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
删除驱动程序包:
pnputil /delete-driver oem0.inf
强制删除驱动程序包:
pnputil /delete-driver oem1.inf /force
/export-driver <oem#.inf | *> <目标目录>
从驱动程序存储中将驱动程序包导出到目标目录中。
示例:
导出驱动程序包:
pnputil /export-driver oem6.inf .
导出所有驱动程序包:
pnputil /export-driver * c:\backup
/enum-drivers
枚举驱动程序存储中的所有第三方驱动程序包。
示例:
枚举所有 OEM 驱动程序包:
pnputil /enum-drivers
/disable-device
禁用系统上的设备。
/deviceid <device ID> - 禁用带匹配设备 ID 的所有设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
禁用设备:
pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
禁用具有特定硬件/兼容 ID 的所有设备:
pnputil /disable-device /deviceid "USB\Class_03"
/enable-device
启用系统上的设备。
/deviceid <device ID> - 启用带匹配设备 ID 的所有设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
启用设备:
pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
启用具有特定硬件/兼容 ID 的所有设备:
pnputil /enable-device /deviceid "USB\Class_03"
/restart-device
重启系统上的设备。
/deviceid <device ID> - 重启带匹配设备 ID 的所有设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
重启设备:
pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
重新启动具有特定硬件/兼容 ID 的所有设备:
pnputil /restart-device /deviceid "USB\Class_03"
/remove-device
尝试从系统中删除设备。
/deviceid <device ID> - 删除带匹配设备 ID 的所有设备。
/subtree - 删除整个设备子树,包括任何子设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
删除设备:
pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
删除具有特定硬件/兼容 ID 的所有设备:
pnputil /remove-device /deviceid "USB\Class_03"
/scan-devices [/instanceid <实例 ID>] [/async]
扫描系统以查找任何设备硬件更改。
/instanceid <实例 ID> - 在设备子树中扫描更改。
/async - 异步扫描更改。
示例:
扫描设备:
pnputil /scan-devices
/enum-devices [/connected | /disconnected] [/instanceid <实例 ID>]
[/class <name | GUID>] [/problem []] [/deviceids]
[/relations] [/drivers]
枚举系统上的所有设备。
/connected | /disconnected - 按连接的设备筛选或
按断开连接的设备筛选。
/instanceid <实例 ID> - 按设备实例 ID 筛选。
/class <名称 | GUID> - 按设备类名称或 GUID 筛选。
/problem [<代码>] - 按出现问题的设备筛选或
按特定问题代码筛选。
/bus [<name | GUID>]-显示总线枚举器名称和总线类型 GUID 或
按总线枚举器名称或总线类型 GUID 筛选。
/deviceids-显示硬件/兼容 ID。
/relations - 显示父级和子级设备关系。
/drivers - 显示匹配的驱动程序和已安装的驱动程序。
/stack-显示设备堆栈信息。
/interfaces - 显示设备接口。
/properties - 显示所有设备属性。
示例:
仅枚举系统上已连接的设备:
pnputil /enum-devices /connected
枚举具有特定实例 ID 的设备:
pnputil /enum-devices /instanceid "ACPI\PNP0A08\1"
枚举具有特定类的所有设备:
pnputil /enum-devices /class Display
pnputil /enum-devices /class {4d36e97d-e325-11ce-bfc1-08002be10318}
枚举具有特定问题代码的所有设备:
pnputil /enum-devices /problem 28
pnputil /enum-devices /problem 0xA
枚举具有特定总线的所有设备:
pnputil /enum-devices /bus PCI
pnputil /enum-devices /bus {c8ebdfb0-b510-11d0-80e5-00a0c92542e3}
枚举具有问题的所有设备并显示硬件/兼容 ID:
pnputil /enum-devices /problem /deviceids
/enum-interfaces [/enabled | /disabled] [/class ]
枚举系统上的所有设备接口。
/enabled | /disabled - 按启用的接口筛选或
按禁用的接口筛选。
/class <GUID> - 按接口类 GUID 筛选。
示例:
仅枚举系统上的已启用接口:
pnputil /enum-interfaces /enabled
枚举具有特定接口类 GUID 的所有接口:
pnputil /enum-interfaces /class {884b96c3-56ef-11d1-bc8c-00a0c91405dd}
/?
显示使用情况屏幕。
Device Console 帮助:
devcon [-r] [-m:<机器>] <命令> [<参数>...]
-r 仅在需要重新启动或重启时才重新启动系统。
指定远程计算机。
指定 Devcon 命令(参见下面的命令列表)。
... 一个或多个修改命令的参数。
要获取特定命令的帮助,请键入:devcon help
classfilter 添加、删除和重新排序类筛选器。
classes 列出所有设备安装类。
disable 禁用设备。
driverfiles 列出设备的已安装驱动程序文件。
drivernodes 列出设备的驱动程序节点。
enable 启用设备。
find 查找设备。
findall 查找设备,包括当前未连接的设备。
help 显示 Devcon 帮助。
hwids 列出设备的硬件 ID。
install 手动安装设备。
listclass 列出设置类中的所有设备。
reboot 重新启动本地计算机。
remove 移除设备。
rescan 扫描新硬件。
resources 列出设备的硬件资源。
restart 重新启动设备。
sethwid 修改列出的根枚举设备的硬件 ID。
stack 列出设备的预期驱动栈。
status 列出设备的运行状态。
update 手动更新设备。
updateni 手动更新设备(非交互式)。
dp_add 添加(安装)第三方(OEM)驱动程序包。
dp_delete 删除第三方(OEM)驱动程序包。
dp_enum 列出安装在此计算机上的第三方(OEM)驱动程序包。
以上是 devcon 命令的列表和说明。您可以根据需要使用适当的命令来管理设备和驱动程序。
标签:DevCon,驱动程序,区别,PnPUtil,enum,pnputil,device,设备
From: https://www.cnblogs.com/suv789/p/17780844.html