26
2024
06
21:55:42

PnPUtil 和 DevCon 区别

DevCon 是一个由微软提供的命令行工具,用于管理设备驱动程序。它提供了一种在命令行中管理设备的便捷方式,可以执行各种设备管理任务,如安装、卸载、禁用、启用和列出设备驱动程序等。

这个工具的使用场景包括但不限于:

  1. 驱动程序管理:可以用于安装、卸载和更新设备驱动程序,适用于调试、测试或更换设备驱动程序的场景。

  2. 设备管理:可以用于列出当前系统中的设备信息,启用、禁用特定设备,查找设备硬件 ID 等。

  3. 脚本自动化:DevCon 的命令行接口可以嵌入到脚本中,使得设备管理操作可以自动化执行,适用于批量操作或自动化部署。

对于系统管理员、设备开发人员和驱动程序开发人员来说,DevCon 是一个非常有用的工具,它能够简化设备管理和驱动程序管理的任务,并提高工作效率。

不过需要注意的是,DevCon 工具虽然强大,但在某些情况下可能存在一些限制,比如无法处理某些特定类型的设备或驱动程序。此外,它也可能需要管理员权限才能执行某些操作,因此在使用时需要谨慎,并遵循相关的安全和最佳实践。

DevCon 是一个由微软提供的命令行工具,用于管理设备驱动程序。它允许用户在命令行中执行许多设备管理任务,如安装、卸载、禁用、启用和列出设备驱动程序。

DevCon 最初是作为 Windows 驱动程序开发工具包(Windows Driver Kit,WDK)的一部分发布的。WDK 是用于开发、测试和部署 Windows 驱动程序的工具包。DevCon 通过命令行接口提供了对设备和驱动程序的丰富管理功能,使得开发和调试驱动程序更加便捷。

使用 DevCon 可以执行的一些常见任务包括:

  • 安装和卸载设备驱动程序

  • 列出当前系统中的设备和驱动程序信息

  • 启用和禁用设备

  • 更新设备驱动程序

  • 查找设备硬件 ID 和相关信息

  • 重启设备

DevCon 提供了一种在命令行中管理设备驱动程序的便捷方式,尤其对于自动化和批处理操作非常有用。它的命令行接口可以嵌入到脚本中,使得设备管理操作可以自动化执行。

需要注意的是,随着 Windows 版本的更新和演变,微软也可能会更新和改进 DevCon 工具,以适应新的设备管理需求和功能。

DevCon 命令的发展可以大致分为以下阶段:

  1. 最初版本: 最初版本的 DevCon 作为 Windows 驱动程序开发工具包(Windows Driver Kit,WDK)的一部分发布。它提供了基本的设备管理功能,如安装、卸载、启用、禁用设备等,以帮助驱动程序开发人员进行调试和测试。

  2. 功能增强: 随着时间的推移,微软不断改进和增强了 DevCon 的功能。新的版本可能会引入更多的命令和选项,以满足用户不断增长的设备管理需求。这些改进可能包括更多的设备信息查看选项、更灵活的设备管理命令等。

  3. 适配新系统: 随着 Windows 系统的更新和演变,DevCon 也需要适应新的系统架构和功能。微软可能会发布更新的版本,以确保 DevCon 可以在新系统版本上正确运行,并支持新的设备类型和驱动程序特性。

  4. 维护和支持: 微软会继续维护和支持 DevCon,确保它与最新的 Windows 版本兼容,并修复已知的问题和漏洞。这样可以确保用户可以持续地使用 DevCon 来管理他们的设备和驱动程序。

DevCon 命令经历了不断的改进和发展,以满足用户不断增长的设备管理需求,并适应新的系统和技术环境。它成为了许多系统管理员、设备开发人员和驱动程序开发人员的重要工具之一。

DevCon 命令是一个强大的工具,可以帮助用户在命令行中管理 Windows 系统上的设备和驱动程序。DevCon 的功能可以按如下分类:

  1. 设备查询

    • devcon listclass <class>:列出特定设备类别下的所有设备。

    • devcon find <id>:查找特定硬件 ID、兼容 ID 或设备描述的设备。

    • devcon status <id>:显示特定设备的状态信息。

  2. 设备管理

    • devcon enable <id>:启用特定的设备。

    • devcon disable <id>:禁用特定的设备。

    • devcon remove <id>:移除指定的设备。

    • devcon rescan:重新扫描系统中的硬件更改,以发现新设备。

  3. 驱动程序管理

    • devcon install <inf> <id>:安装指定 INF 文件的驱动程序到特定设备。

    • devcon update <inf> <id>:更新特定设备的驱动程序。

    • devcon reboot:重启系统,以应用驱动程序更改。

  4. 设备属性和信息

    • devcon properties <id>:显示指定设备的属性信息。

    • devcon hwids <id>:显示指定设备的硬件 ID。

    • devcon driverfiles <id>:列出特定设备的驱动程序文件。

  5. 批量操作

    • devcon update <inf> =<class>:更新指定类别的所有设备的驱动程序。

    • devcon enable =<class>:启用特定类别的所有设备。

    • devcon disable =<class>:禁用特定类别的所有设备。

这些功能可以帮助用户在命令行中对系统中的设备和驱动程序进行广泛的管理和控制。DevCon 可以处理各种复杂的任务,并为系统管理员、设备开发人员和驱动程序开发人员提供便捷的工具。

DevCon 命令在以下场景中非常有用:

  1. 设备故障排除: 可以使用 DevCon 命令来检查设备状态、启用或禁用特定设备,以便诊断和解决设备故障。

  2. 驱动程序管理: 管理系统中的驱动程序,包括安装新驱动程序、更新现有驱动程序或卸载不需要的驱动程序。

  3. 自动化脚本: 可以将 DevCon 命令集成到自动化脚本中,以便在系统启动、用户登录或其他事件发生时执行设备管理任务。

  4. 设备部署和配置: 在大规模部署中,可以使用 DevCon 命令来自动化设备的安装、配置和管理,以确保系统的一致性和稳定性。

  5. 设备信息收集: 可以使用 DevCon 命令来收集设备的硬件 ID、属性信息等,以便进行设备清单、报告或其他管理任务。

  6. 驱动程序开发和测试: 驱动程序开发人员可以使用 DevCon 命令来测试他们的驱动程序,例如安装、卸载和更新驱动程序,以确保其正常运行和与系统的兼容性。

  7. 远程管理: 通过远程命令行或远程管理工具,可以使用 DevCon 命令来远程管理其他计算机上的设备和驱动程序。

DevCon 命令提供了一个强大的工具集,可以用于各种设备管理和驱动程序管理任务,从而帮助用户简化管理、提高效率并快速解决问题。

初级应用的 DevCon 命令大纲:

  1. 设备查询

    • 使用 devcon listclass 列出系统中所有设备类别。

    • 使用 devcon find <id> 查找特定硬件 ID、兼容 ID 或设备描述的设备。

    • 使用 devcon status <id> 显示特定设备的状态信息。

  2. 设备管理

    • 使用 devcon enable <id> 启用特定的设备。

    • 使用 devcon disable <id> 禁用特定的设备。

    • 使用 devcon remove <id> 移除指定的设备。

  3. 驱动程序管理

    • 使用 devcon install <inf> <id> 安装指定 INF 文件的驱动程序到特定设备。

    • 使用 devcon update <inf> <id> 更新特定设备的驱动程序。

  4. 设备属性和信息

    • 使用 devcon properties <id> 显示指定设备的属性信息。

    • 使用 devcon hwids <id> 显示指定设备的硬件 ID。

    • 使用 devcon driverfiles <id> 列出特定设备的驱动程序文件。

  5. 批量操作

    • 使用 devcon enable =<class> 启用特定类别的所有设备。

    • 使用 devcon disable =<class> 禁用特定类别的所有设备。

通过掌握这些基本的 DevCon 命令,用户可以开始进行设备管理和驱动程序管理的基本操作,从而更好地控制和维护系统中的硬件设备。

中级应用的 DevCon 命令大纲:

  1. 设备属性和信息查询

    • 使用 devcon classfilter <class> 列出特定设备类别的过滤器驱动程序信息。

    • 使用 devcon drivernodes <id> 显示特定设备的驱动程序节点信息。

  2. 驱动程序安装和卸载

    • 使用 devcon install <inf> <id> 安装特定 INF 文件的驱动程序到指定设备。

    • 使用 devcon remove <id> 移除特定设备的驱动程序。

  3. 设备树查询和操作

    • 使用 devcon findall * 列出系统中所有设备的树形结构。

    • 使用 devcon rescan 强制系统重新扫描硬件并更新设备树。

  4. 设备状态监控

    • 使用 devcon classes 列出当前系统中所有已安装设备的类别。

    • 使用 devcon status * 显示系统中所有设备的当前状态。

  5. 设备驱动程序备份和恢复

    • 使用 devcon driverfiles <id> > <filename> 将特定设备的驱动程序信息导出到文件。

    • 使用 devcon install <filename> 从导出的文件中恢复设备驱动程序。

  6. 驱动程序版本控制

    • 使用 devcon update <inf> <id> 更新指定设备的驱动程序,确保使用最新版本。

通过掌握这些中级应用的 DevCon 命令,用户可以进行更加高级的设备管理和驱动程序管理操作,进一步优化系统的性能和稳定性。

高级应用的 DevCon 命令大纲:

  1. 设备注册表操作

    • 使用 devcon reg <command> <id> 对指定设备的注册表进行操作,如导出、导入、删除等。

  2. 设备栈操作

    • 使用 devcon stack <id> 显示指定设备的驱动程序栈信息,包括加载的驱动程序和其顺序。

  3. 驱动程序排查和问题解决

    • 使用 devcon driverfiles <id> 列出指定设备的所有驱动程序文件,以排查驱动程序冲突或问题。

    • 使用 devcon dp_add <inf> 手动添加驱动程序以解决设备与驱动程序的兼容性问题。

  4. 设备迁移和备份

    • 使用 devcon rescan 强制系统重新扫描硬件并更新设备列表,用于设备迁移或更换后的设备检测。

    • 使用 devcon backup <destination> 备份当前系统的设备列表和驱动程序信息到指定位置。

  5. 设备性能优化

    • 使用 devcon hwids <id> 显示指定设备的硬件 ID,以便进行更精确的驱动程序匹配和性能优化。

  6. 批量操作和脚本编写

    • 利用批处理脚本结合 DevCon 命令进行批量设备管理和驱动程序管理操作,以提高效率和一致性。

通过掌握这些高级应用的 DevCon 命令,用户可以进行更深入的设备管理和故障排除,实现更精细化和高效率的系统维护。

专家级应用的 DevCon 命令大纲:

  1. 驱动程序调试和分析

    • 使用 devcon drivernodes <id> 详细查看设备驱动程序的节点信息,以便进行调试和分析。

    • 使用 devcon classes 结合 Windows 调试工具(如 WinDbg)对特定设备类别的驱动程序进行调试。

  2. 设备控制和定制

    • 使用 devcon sethwid <id> <hwid> 修改指定设备的硬件 ID,以适配特定驱动程序或硬件配置。

    • 使用 devcon update <inf> <id> 结合自定义的 INF 文件对设备进行定制化驱动程序更新。

  3. 驱动程序开发和修改

    • 利用 DevCon 的各种命令对设备和驱动程序进行模拟和调试,加速驱动程序开发和修改的过程。

    • 使用 devcon classes 和 devcon drivernodes 查看系统中已加载的驱动程序信息,进行针对性的修改和优化。

  4. 设备管理脚本编写

    • 结合 PowerShell 或其他脚本语言编写复杂的设备管理脚本,实现自动化的设备配置和管理。

  5. 驱动程序安全性评估

    • 使用 devcon driverfiles <id> 分析特定设备的驱动程序文件,评估其安全性和稳定性。

    • 使用 devcon dp_enum 和 devcon dp_get_status 查看设备的驱动程序状态,识别潜在的安全风险。

通过深入理解和应用这些专家级应用的 DevCon 命令,用户可以在设备管理和驱动程序开发领域获得更高水平的掌握和应用能力。

顶尖级应用的 DevCon 命令大纲:

  1. 驱动程序分析和优化

    • 使用 devcon resources <id> 查看设备的资源分配情况,以优化驱动程序性能和系统稳定性。

    • 结合性能监控工具(如 Performance Monitor)对设备和驱动程序进行实时性能分析和优化。

  2. 设备安全性评估和漏洞检测

    • 使用 devcon driverfiles <id> 分析设备的驱动程序文件,检测潜在的安全漏洞和恶意代码。

    • 结合安全扫描工具(如静态代码分析工具)对驱动程序进行深度审查和漏洞检测。

  3. 驱动程序漏洞修复和安全加固

    • 使用 devcon update <inf> <id> 结合最新的补丁和安全更新修复设备驱动程序中的漏洞。

    • 利用 DevCon 命令和安全编程技巧对驱动程序进行安全加固,防止潜在的攻击和漏洞利用。

  4. 设备驱动程序的持续集成和交付

    • 将 DevCon 命令集成到持续集成(CI)和持续交付(CD)流程中,实现自动化的设备驱动程序测试和部署。

    • 利用 DevCon 命令和脚本自动化驱动程序的构建、打包和部署,提高交付效率和质量。

  5. 驱动程序的性能优化和瓶颈排查

    • 使用 DevCon 命令和性能分析工具对驱动程序进行性能优化和瓶颈排查,提升系统整体性能和响应速度。

通过掌握这些顶尖级应用的 DevCon 命令,用户可以在设备管理和驱动程序开发领域达到行业领先水平,实现高效、安全和稳定的系统运行和管理。

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 [/reboot]

禁用系统上的设备。
  /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 [/reboot]

启用系统上的设备。
  /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 [/reboot]

重启系统上的设备。
  /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 [/subtree] [/reboot]

尝试从系统中删除设备。
  /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。

设备控制台帮助:
devcon [-r] [-m:\\<machine>] <command> [<arg>...]
-r           仅在需要重新启动时重新启动系统。
<machine>    指定远程计算机。
<command>    指定一个 Devcon 命令(见下面的命令列表)。
<arg>...     一个或多个修改命令的参数。
要获取特定命令的帮助,请输入: devcon help <command>

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 禁用命令 禁用具有指定硬件或实例 ID 的设备。 仅适用于本地计算机。(如果需要重启,请添加 -r 选项。)

Copy Code
devcon [-r] disable <id> [<id>...]
devcon [-r] disable =<class> [<id>...]
  • -r 表示仅在需要重启或重启计算机时才重新启动。

  • <class> 指定设备安装类。

<id> 的示例

  • * - 所有设备

  • ISAPNP\PNP0501 - 硬件 ID

  • *PNP* - 带通配符的硬件 ID(* 匹配任何内容)

  • @ISAPNP\*\* - 带通配符的实例 ID(@ 为实例 ID 的前缀)

  • 'PNP0501 - 硬件 ID 使用撇号 ' 作为前缀以匹配字面意义的字符串(完全匹配,包括星号)

推荐的等效命令

Copy Code
pnputil /disable-device <id>

这是一种较新的工具,用于管理设备。

请尝试以下几种方法:

  1. 使用 devcon classes 命令:尝试使用 devcon classes 命令来列出所有设备安装类。这个命令可以用来查看系统中所有可用的设备类别。

    Copy Code
    D:\drivers_backup\devconx64 v 10.0.22621.2428 d20230930>devcon classes
  2. 使用 devcon findall * 命令:尝试使用 devcon findall * 命令来查找系统中所有设备,这将列出所有设备及其设备类别。

    Copy Code
    D:\drivers_backup\devconx64 v 10.0.22621.2428 d20230930>devcon findall *
  3. 查看帮助文档:如果以上方法仍然不能满足需求,请查看 devcon 的帮助文档,确认正确的用法和参数。使用 devcon help 命令来获取详细的帮助信息。

    Copy Code
    D:\drivers_backup\devconx64 v 10.0.22621.2428 d20230930>devcon help

通过上述方法中的一个或多个,应该能够找到系统中所有设备类别的相关信息。如果仍然遇到问题,请提供更多关于 devcon 版本和操作系统信息的详细内容,以便进一步协助解决问题。

  1. 设备查询

shellCopy Code
# 列出系统中所有设备类别devcon classes# 查找特定硬件 ID、兼容 ID 或设备描述的设备devcon find <id># 显示特定设备的状态信息devcon status <id>
  1. 设备管理

shellCopy Code
# 启用特定的设备devcon enable <id># 禁用特定的设备devcon disable <id># 移除指定的设备devcon remove <id>
  1. 驱动程序管理

shellCopy Code
# 安装指定 INF 文件的驱动程序到特定设备devcon install <inf> <id># 更新特定设备的驱动程序devcon update <inf> <id>
  1. 设备属性和信息

shellCopy Code
# 显示指定设备的属性信息devcon hwids <id># 列出特定设备的驱动程序文件devcon driverfiles <id>
  1. 批量操作

shellCopy Code
# 启用特定类别的所有设备devcon enable =<class># 禁用特定类别的所有设备devcon disable =<class>
  1. 设备属性和信息查询

shellCopy Code
# 列出特定设备类别的过滤器驱动程序信息devcon classfilter <class># 显示特定设备的驱动程序节点信息devcon drivernodes <id>
  1. 驱动程序安装和卸载

shellCopy Code
# 安装特定 INF 文件的驱动程序到指定设备devcon install <inf> <id># 移除特定设备的驱动程序devcon remove <id>
  1. 设备树查询和操作

shellCopy Code
# 列出系统中所有设备的树形结构devcon findall *# 强制系统重新扫描硬件并更新设备树devcon rescan
  1. 设备状态监控

shellCopy Code
# 列出当前系统中所有已安装设备的类别devcon classes# 显示系统中所有设备的当前状态devcon status *
  1. 设备驱动程序备份和恢复

shellCopy Code
# 将特定设备的驱动程序信息导出到文件devcon driverfiles <id> > <filename># 从导出的文件中恢复设备驱动程序devcon install <filename>
  1. 驱动程序版本控制

shellCopy Code
# 更新指定设备的驱动程序,确保使用最新版本devcon update <inf> <id>

这些命令应该可以帮助您进行设备属性和信息的查询、驱动程序的安装和卸载、设备树的操作、设备状态的监控、设备驱动程序的备份和恢复,以及驱动程序版本的控制。

  1. 设备注册表操作

shellCopy Code
# 对指定设备的注册表进行操作,如导出、导入、删除等devcon reg <command> <id>
  1. 设备栈操作

shellCopy Code
# 显示指定设备的驱动程序栈信息,包括加载的驱动程序和其顺序devcon stack <id>
  1. 驱动程序排查和问题解决

shellCopy Code
# 列出指定设备的所有驱动程序文件,以排查驱动程序冲突或问题devcon driverfiles <id># 手动添加驱动程序以解决设备与驱动程序的兼容性问题devcon dp_add <inf>
  1. 设备迁移和备份

shellCopy Code
# 强制系统重新扫描硬件并更新设备列表,用于设备迁移或更换后的设备检测devcon rescan# 备份当前系统的设备列表和驱动程序信息到指定位置devcon backup <destination>
  1. 设备性能优化

shellCopy Code
# 显示指定设备的硬件 ID,以便进行更精确的驱动程序匹配和性能优化devcon hwids <id>
  1. 批量操作和脚本编写

利用批处理脚本结合 DevCon 命令进行批量设备管理和驱动程序管理操作,以提高效率和一致性。

驱动程序调试和分析

  • 查看设备驱动程序节点信息:使用 devcon drivernodes <id> 命令,可以详细查看设备驱动程序的节点信息。这在调试和分析时非常有用。

  • 调试特定设备类别的驱动程序:结合 Windows 调试工具(如 WinDbg),使用 devcon classes 可以列出所有设备类别,帮助定位和调试特定类别的驱动程序。

设备控制和定制

  • 修改设备硬件 ID:使用 devcon sethwid <id> <hwid> 修改指定设备的硬件 ID,以便适配特定驱动程序或硬件配置。

  • 定制化驱动程序更新:使用 devcon update <inf> <id> 结合自定义的 INF 文件对设备进行驱动程序更新。这对于设备控制和定制非常有效。

驱动程序开发和修改

  • 模拟和调试驱动程序:利用 DevCon 的各种命令对设备和驱动程序进行模拟和调试,加速驱动程序开发和修改的过程。

  • 查看系统中已加载的驱动程序信息:使用 devcon classes 和 devcon drivernodes 查看所有设备的类别和驱动程序信息,以便进行针对性的修改和优化。

设备管理脚本编写

  • 编写自动化设备管理脚本:结合 PowerShell 或其他脚本语言,编写复杂的设备管理脚本,以实现自动化的设备配置和管理。利用 DevCon 的命令,可以轻松实现批量操作。

驱动程序安全性评估

  • 分析驱动程序文件:使用 devcon driverfiles <id> 可以分析特定设备的驱动程序文件,评估其安全性和稳定性。

  • 查看设备驱动程序状态:使用 devcon dp_enum 和 devcon dp_get_status 可以查看设备的驱动程序状态,从而识别潜在的安全风险。

这些更正后的命令和使用方法应该可以帮助您在驱动程序调试和分析、设备控制和定制、驱动程序开发和修改、设备管理脚本编写,以及驱动程序安全性评估方面获得更好的体验。

 

最新版本的 devcon 命令参数及其示例:

  1. classfilter: 添加、删除和重新排序类过滤器。

    • 示例:devcon classfilter ...

  2. classes: 列出所有设备安装类。

    • 示例:devcon classes

  3. disable: 禁用设备。

    • 示例:devcon disable <id>

  4. driverfiles: 列出设备的已安装驱动程序文件。

    • 示例:devcon driverfiles <id>

  5. drivernodes: 列出设备的驱动程序节点。

    • 示例:devcon drivernodes <id>

  6. enable: 启用设备。

    • 示例:devcon enable <id>

  7. find: 查找设备。

    • 示例:devcon find <id>

  8. findall: 查找设备,包括当前未连接的设备。

    • 示例:devcon findall <id>

  9. help: 显示 Devcon 帮助。

    • 示例:devcon help <command>

  10. hwids: 列出设备的硬件 ID。

    • 示例:devcon hwids <id>

  11. install: 手动安装设备。

    • 示例:devcon install <inf_file> <hw_id>

  12. listclass: 列出设置类中的所有设备。

    • 示例:devcon listclass <class>

  13. reboot: 重新启动本地计算机。

    • 示例:devcon reboot

  14. remove: 移除设备。

    • 示例:devcon remove <id>

  15. rescan: 扫描新硬件。

    • 示例:devcon rescan

  16. resources: 列出设备的硬件资源。

    • 示例:devcon resources <id>

  17. restart: 重新启动设备。

    • 示例:devcon restart <id>

  18. sethwid: 修改列出的根枚举设备的硬件 ID。

    • 示例:devcon sethwid <id> <new_hw_id>

  19. stack: 列出设备的预期驱动程序堆栈。

    • 示例:devcon stack <id>

  20. status: 列出设备的运行状态。

    • 示例:devcon status <id>

  21. update: 手动更新设备。

    • 示例:devcon update <id> <inf_file>

  22. updateni: 手动更新设备(非交互式)。

    • 示例:devcon updateni <id> <inf_file>

  23. dp_add: 添加(安装)第三方(OEM)驱动程序包。

    • 示例:devcon dp_add <inf_file>

  24. dp_delete: 删除第三方(OEM)驱动程序包。

    • 示例:devcon dp_delete <inf_file>

  25. dp_enum: 列出此计算机上安装的第三方(OEM)驱动程序包。

    • 示例:devcon dp_enum

这些示例展示了每个命令的用法,你可以根据需要选择合适的命令并提供相应的参数。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/6827.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: