PnPUtil、DevGen 和 DevCon.exe 这三种工具的对比表格,涵盖它们的主要功能和区别:PnPUtil、DevGen、DevCon.exe 命令等价对照表,PnPUtil / DevGen / DevCon.exe 对比总表

PnPUtil 命令语法 - Windows drivers | Microsoft Learn

pnputil | Microsoft Learn

Windows 设备控制台 (Devcon.exe) - Windows drivers | Microsoft Learn

DevGen 命令语法 - Windows drivers | Microsoft Learn

PnPUtil(pnputil.exe)命令分类、特色、应用场景

底层调用:setupapi.dll、cfgmgr32.dll、drvstore.dll;内置在 Win10 1607+/Win11,微软官方主推生产环境 PnP 命令行工具,管理员权限为绝大多数操作的前置条件Microsoft ...

分类总表

大类 子命令 核心特色 典型应用场景
一、驱动包仓库管理(DriverStore,核心强项) /add-driver /delete-driver /enum-drivers /export-driver 1. 直接操作%windir%\System32\DriverStore驱动仓库2. /add-driver支持批量递归扫描*.inf;/install标记匹配设备自动安装驱动3. 自动校验驱动 CAT 签名,入库前校验完整性4. /delete-driver支持/force强制删除;有引用保护,设备占用时默认拒绝删除5. /export-driver备份现有驱动包到外部目录 ✅ 服务器批量预装驱动(Server Core 无 GUI)✅ 镜像部署、OS 预注入驱动包✅ 清理旧版 OEM 驱动、冗余驱动包✅ 驱动备份、迁移、离线驱动入库✅ 产线自动化装机脚本
二、设备生命周期管理(设备节点 DevNode) /enable-device /disable-device /remove-device /scan-devices 1. 操作内核 DevNode,下发 PnP IRP,控制设备启停 / 删除2. /remove-device /subtree可一次性删除整个设备子树(例如 USB 集线器 + 下级所有 USB 设备)3. /scan-devices = 扫描检测新硬件,等价设备管理器「扫描硬件改动」4. 支持按实例 ID、硬件 ID、设备类、总线批量筛选设备5. /force参数可强制禁用关键设备(谨慎) ✅ 故障排查:网卡 / 声卡 / USB 设备异常,禁用再启用复位✅ 清理残留幽灵设备(已拔硬件,但注册表仍保留 DevNode)✅ 自动化脚本批量禁用多余硬件(工控机、虚拟机)✅ 热插拔硬件后强制触发 PnP 枚举
三、枚举查询与诊断(只读,普通用户可执行) /enum-devices /enum-containers /enum-classes /enum-interfaces 1. 丰富过滤参数:/connected、/drivers、/deviceids、/class、/bus2. /enum-devices /drivers:查看设备绑定的驱动节点、驱动排名(驱动优先级)3. /enum-containers:设备容器(一个物理设备包含多个子设备,如多功能 USB 适配器)4. /enum-classes:枚举设备安装类 GUID(Win11 22H2 新增)5. 输出可重定向到日志文件,用于自动化巡检 ✅ 硬件资产自动盘点、导出硬件清单✅ 驱动冲突排查:对比硬件 ID、驱动版本、驱动排名✅ 查找带黄色感叹号故障设备(设备问题码)✅ 驱动开发调试,查看设备容器、设备接口
四、辅助控制 /reboot(附属标志,非独立子命令) 附加参数,操作完成后按需自动重启,仅在驱动安装 / 删除需要重启时触发,不强制重启 自动化脚本无人值守批量部署驱动

核心特色汇总

  1. 系统内置,无需额外分发:Win10/1607 之后自带,Server Core 环境必备,不需要像 DevCon、DevGen 单独安装 WDK。
  2. 驱动仓库 + 设备节点一体化:同时管理 DriverStore 驱动包(文件层面)和内核 DevNode 设备实例(硬件实例层面),DevCon 仅能操作设备节点,不具备完整 DriverStore 管理能力。
  3. 标准化、脚本友好:输出结构化文本,支持管道、输出重定向,适合 PowerShell/Bat 自动化流水线,微软官方推荐作为 DevCon 替代品。
  4. 安全保护机制
    • 驱动引用计数保护:正在使用的驱动包默认不能删除
    • 驱动排名机制:/add-driver /install不会强制降级替换更高优先级驱动,避免驱动被强行覆盖导致蓝屏,这是和第三方驱动工具最大区别
    • 支持强制操作,但强制参数需要管理员,有风险提示
  5. 版本边界:早期简单参数-a/-d/-e是旧版简写;现代完整功能(disable/enable/remove-device)需要 Win10 2004 及以上;/enum-classes等新命令需要 Win11 22H2+。

局限性(边界,重点)

  1. 仅本地操作,无远程计算机设备管理(DevCon 独有远程查询能力)。
  2. 不能直接创建虚拟 ROOT 设备,虚拟测试设备必须搭配 DevGen。
  3. 不能手动直接修改硬件资源(IRQ、内存范围),仅能依靠 pnp.sys 自动资源重平衡。
  4. 无法手动选择同硬件多个候选驱动,只能依靠 Windows 原生驱动排名机制。

场景选型速判

业务需求 是否选 pnputil 备注
生产服务器、工控、批量装机,驱动入库 / 清理 ✅首选 官方推荐,稳定可靠
驱动开发,创建 ROOT 虚拟测试设备 ❌单独不行 DevGen 创设备 + pnputil 安装驱动,组合使用
远程主机查询硬件设备 ❌ 只能用遗留 DevCon
脚本自动化巡检、导出硬件清单 ✅首选 输出日志方便留存
清理幽灵设备、复位异常硬件 ✅首选 替代 devcon remove

典型命令示例(高频)

:: 批量导入当前目录所有inf驱动包并自动匹配安装
pnputil /add-driver *.inf /subdirs /install

:: 枚举所有已连接设备并附带驱动信息
pnputil /enum-devices /connected /drivers

:: 删除指定实例ID设备(含子设备树)
pnputil /remove-device "ROOT\ABC\1234" /subtree

:: 导出驱动包备份
pnputil /export-driver oem0.inf D:\DriverBackup

PnPUtil FMEA 风险矩阵(pnputil.exe,顶域:驱动安装 / 设备操作场景)

说明:RPN = 严重度 S × 发生度 O × 探测度 D;S/O/D 取值 1~10,数值越大风险越高

适用:pnputil /add-driver /install、remove/enable、scan-devices 自动化运维、产线、服务器部署场景

序号 失效模式 潜在根因 S O D RPN 风险等级 控制措施
1 pnputil 执行报错,驱动包入库失败(DriverStore Stage 失败) 1.INF 语法错误、INF 文件损坏2. 驱动包缺少依赖文件(sys/cat)3.CAT 签名无效,crypt32 校验不通过4.DriverStore 目录权限不足、磁盘满、磁盘只读 8 3 4 96 高 1. 部署前预校验 INF 完整性、CAT 证书链2. 提前校验磁盘剩余空间;校验目录 ACL 权限3. 预执行pnputil /enum-drivers验证 DriverStore 可访问;查看 setupapi.dev.log
2 驱动入库成功,但无法绑定设备,设备黄色感叹号 1. 硬件 ID / 兼容 ID 不匹配 INF [Models]2. 内核 ci.dll DSE 驱动签名策略拦截(安全启动开启)3. 底层总线驱动异常,DevNode 状态异常4. 资源冲突,pnp.sys 资源分配失败 9 3 3 81 高 1. 核对硬件 ID 与 INF Models 段;2. 检查安全启动、内核 DSE 策略;3. 查看 PnP 事件日志、setupapi.dev.log 设备问题码;4. 预扫描硬件pnputil /scan-devices
3 pnputil 命令执行成功,设备启动后蓝屏 / 死机 1. 驱动二进制本身 bug,与平台不兼容2. 驱动版本冲突,旧驱动残留未清理3. 过滤驱动冲突,设备栈异常 10 2 4 80 高 1. 测试环境先验证驱动;生产前快照备份;2. 清理旧版本 OEM 驱动包;3. 核查设备栈,排查第三方过滤驱动
4 pnputil 执行返回成功,但设备未加载驱动(静默失效) 1. 驱动排名优先级低于系统自带内置驱动2. 设备实例状态异常,DevNode 标记为已阻止3. 缺少/install参数,仅入库不绑定设备 7 4 4 112 极高 1. 必须带/install参数;2. 使用/enum-devices /drivers查看驱动排名;3. 检查设备问题码 CM_PROB_XXX
5 pnputil /remove-device 删除设备失败,设备无法移除 1. 上层驱动持有设备引用,IRP_MN_QUERY_REMOVE 被否决2. 设备正在被应用占用3. 权限不足,非管理员执行 8 4 3 96 高 1. 关闭占用硬件业务程序;2. 管理员权限运行;3. 查看 setupapi 日志定位否决 IRP 的驱动;必要时安全模式操作
6 pnputil 程序启动失败,直接退出 1.pnputil.exe 文件损坏丢失2. 依赖 DLL 损坏:setupapi.dll/cfgmgr32.dll3. 系统 PnP 子系统异常 7 2 3 42 低 sfc /scannow、DISM 修复系统映像;检查系统文件完整性
7 批量递归/subdirs扫描 INF,漏识别部分驱动包 1. 子目录 INF 文件名特殊、权限拒绝访问2.INF 编码异常无法解析 6 3 5 90 中 1. 脚本增加文件遍历前置校验;2. 单独测试每一个子目录 INF;日志输出全部扫描结果
8 /delete-driver 删除驱动包失败,提示驱动正在被引用 1. 设备仍绑定该驱动,引用计数 > 02. 存在幽灵设备残留占用驱动引用 7 4 4 112 极高 1. 先删除对应设备节点;2. 清理幽灵设备;3. 谨慎使用/force强制删除,有蓝屏风险
9 /scan-devices扫描硬件改动无响应,不发现新硬件 1.pnp.sys 内核 PnP 子系统卡死2. 总线驱动故障,无法上报新设备 8 2 4 64 中 查看系统 PnP 事件日志;重启系统重置内核设备树;核查总线驱动状态

二、FTA 故障树(顶事件:驱动安装失败,使用 pnputil /add-driver/install)

顶事件:T:pnputil 执行驱动安装失败

T:pnputil执行驱动安装失败
├─ M1:【阶段1】驱动包入库(Stage)失败
│  ├─ X1:INF文件损坏/语法错误
│  ├─ X2:驱动包文件缺失(.sys/.cat丢失)
│  ├─ X3:驱动CAT签名校验失败(证书失效/篡改)
│  ├─ X4:DriverStore磁盘空间不足 / 只读 / ACL权限不足
│  └─ X5:setupapi.dll / drvstore.dll损坏,无法处理驱动包
│
├─ M2:【阶段2】驱动入库成功,但设备匹配失败(找不到目标设备)
│  ├─ X6:硬件ID/兼容ID和INF [Models]不匹配
│  ├─ X7:目标DevNode设备实例不存在,未枚举到硬件
│  └─ X8:未加 /install 参数:仅入库,不执行设备绑定
│
├─ M3:【阶段3】驱动匹配成功,但内核拒绝加载驱动
│  ├─ X9:DSE驱动强制签名拦截(安全启动开启,无有效签名)
│  ├─ X10:驱动镜像损坏,I/O管理器加载失败
│  └─ X11:内核pnp.sys异常,无法下发IRP_MN_START_DEVICE
│
└─ M4:【阶段4】驱动加载成功,但设备启动失败(设备带黄色感叹号)
   ├─ X12:硬件资源冲突(内存/IRQ/MSI资源分配失败)
   ├─ X13:底层总线驱动异常,设备栈构建失败
   ├─ X14:驱动自身初始化代码执行失败
   └─ X15:第三方过滤驱动冲突,拦截PnP IRP

故障树补充说明

  1. 时序链路:入库 (M1) → 设备匹配 (M2) → 内核加载 (M3) → 设备启动 (M4);任意一个子事件发生,都会触发顶事件 “驱动安装失败”
  2. 日志定位路径
    • M1 入库失败:优先查看 setupapi.dev.log,INF 解析、签名、DriverStore 报错
    • M2 设备匹配失败:pnputil /enum-devices /drivers 查看硬件 ID、驱动排名
    • M3/M4 内核加载 / 启动失败:系统事件日志(PnP、WHEA)、内核转储、CI 驱动签名事件
  3. 重要边界:pnputil 本身只是编排工具;M3/M4 属于内核侧(pnp.sys、ci.dll、硬件驱动)故障,pnputil 无法绕过内核校验

PnPUtil、DevGen、DevCon.exe 命令等价对照表

前提说明:

  1. DevCon 为遗留工具,微软不再维护;DevGen 仅用于创建 / 删除 ROOT 虚拟软件测试设备,没有驱动管理能力;PnPUtil 为现代系统内置首选。
  2. 旧 DevCon devcon install 拆分为两条命令组合:DevGen 创设备 + PnPUtil 安装驱动。
  3. 所有设备修改类操作均需要管理员权限。
DevCon 旧命令 DevCon 功能描述 现代等价命令(PnPUtil + DevGen) 备注
devcon find <hwid> 查找匹配硬件 ID 的设备 pnputil /enum-devices /hwid <hwid> 只读查询,普通用户可执行
devcon findall <hwid> 查找所有设备(含已断开幽灵设备) pnputil /enum-devices /disconnected /hwid <hwid> 包含不在位残留 DevNode
devcon listclass <classname> 枚举指定设备安装类设备 pnputil /enum-devices /class <classGUID> PnPUtil 需要类 GUID,不是类名称
devcon enable <instanceid> 启用设备 pnputil /enable-device <instanceid> 下发 IRP_MN_START_DEVICE
devcon disable <instanceid> 禁用设备 pnputil /disable-device <instanceid> 下发 IRP_MN_STOP_DEVICE
devcon remove <instanceid> 删除设备节点 pnputil /remove-device <instanceid> 增加 /subtree 参数可删除整个子设备树
devcon rescan 扫描硬件改动,触发 PnP 重枚举 pnputil /scan-devices 触发 pnp.sys 总线重新枚举硬件
devcon restart <instanceid> 重启设备(停用再启用) pnputil /restart-device <instanceid> Win10 2004 + 支持
devcon install xxx.inf root\mydev 创建 ROOT 虚拟设备 + 安装驱动包 devgen /add /bus ROOT /hardwareid root\mydevpnputil /add-driver xxx.inf /install ⚠️ DevGen 仅创建虚拟 DevNode,不会安装驱动,必须搭配 pnputil
devcon drivernodes <instanceid> 查看设备候选驱动列表、驱动排名 pnputil /enum-devices /drivers /instanceid <instanceid> 查看驱动版本、OEM INF 名称、驱动优先级
devcon classes 列出所有设备安装类 pnputil /enum-classes Win11 22H2 新增 pnputil 该参数
devcon stack <instanceid> 查询设备栈(过滤驱动、功能驱动、总线驱动) pnputil /enum-devices /stack /instanceid <instanceid> Win11 22H2 + 支持,查看完整设备驱动栈
devcon status <instanceid> 查询设备状态、设备问题码 pnputil /enum-devices /instanceid <instanceid> 输出包含设备状态、CM_PROB 问题代码
devcon hwids <instanceid> 获取硬件 ID、兼容 ID pnputil /enum-devices /deviceids /instanceid <instanceid> 直接输出 HardwareID / CompatibleID
devcon resources <instanceid> 查询硬件资源(内存、IO、中断 / MSI) pnputil /enum-devices /resources /instanceid <instanceid> Win11 22H2 + 支持
devcon dp_add xxx.inf 将驱动包导入 DriverStore pnputil /add-driver xxx.inf 仅入库,不绑定设备;增加/install自动匹配安装
devcon dp_delete oemxx.inf 删除 DriverStore 内驱动包 pnputil /delete-driver oemxx.inf 被设备引用时默认拒绝;/force强制删除(风险高)
devcon dp_enum 枚举 DriverStore 内所有第三方驱动包 pnputil /enum-drivers 列出 oem 驱动、版本、发布商、INF 路径
devcon /r 操作完成自动重启 pnputil 子命令 /reboot 作为附加标志,不是独立命令
devcon @\\remotePC find * 远程计算机设备查询 ❌ 无等价命令 PnPUtil、DevGen不支持远程;仅 DevCon 独有能力

DevGen 独立命令对照表(DevGen 无 DevCon 直接对应,驱动开发测试专用)

DevGen 命令 功能 说明
devgen /add /bus ROOT /hardwareid root\testdev 创建 ROOT 总线虚拟设备 仅新建 DevNode,重启后设备保留
devgen /add /bus SWD /hardwareid swd\testdev 创建 SWD 软件虚拟设备 软件设备,系统重启自动销毁
devgen /remove /hardwareid root\testdev 删除 DevGen 创建的虚拟设备节点 仅删除 DevNode,不卸载驱动包

重要迁移注意事项

  1. DevCon install 是最大坑点 DevCon 旧命令一条同时完成两件事:①新建 ROOT 设备节点;②加载 INF 安装驱动。 现代拆分成两步:DevGen 创设备 + PnPUtil 安装驱动。只运行 DevGen,硬件设备会出现,但不带驱动,黄色感叹号。
  2. 参数风格差异
    • DevCon:习惯空格分隔参数,部分命令使用@标记实例 ID
    • PnPUtil:统一使用/xxx命名参数,实例 ID 带空格需要英文双引号包裹
  3. 版本门槛
    • /restart-device、/stack、/resources:Win10 2004 / Win11 22H2 起才支持
    • 旧版 Win10 缺少这些参数,只能用disable + enable模拟重启设备
  4. 不支持迁移场景 远程主机设备查询,没有 pnputil/devgen 替代方案,只能保留 DevCon。

快速迁移示例

旧 DevCon

devcon install test.inf root\test01

现代等价脚本

devgen /add /bus ROOT /hardwareid root\test01
pnputil /add-driver test.inf /install

PnPUtil / DevGen / DevCon.exe 对比总表

项目 PnPUtil(pnputil.exe) DevGen(devgen.exe) DevCon.exe(Device Console)
官方定位 Windows 收件箱内置,现代标准 PnP 驱动 / 设备管理工具,微软主推生产环境工具 WDK 测试工具,仅用于创建 / 删除虚拟软件设备、ROOT 根枚举测试设备 WDK 遗留开发测试工具;最初是 SetupAPI 示例 Demo,官方标记弃用,不推荐新项目Microsoft ...
是否内置系统 ✅ Win10/11 自带,C:\Windows\System32\pnputil.exe ❌ 不内置,WDK22H2 + 才附带,禁止单独二次分发,仅限测试 ❌ 不内置,需要安装 WDK/SDK 获取
底层调用 DLL setupapi.dll、cfgmgr32.dll、drvstore.dll、advapi32.dll cfgmgr32.dll、setupapi.dll,直接创建 DevNode(软件设备) setupapi.dll、cfgmgr32.dll(SetupDi、CM_经典 API)Microsoft ...
核心能力 1. DriverStore 驱动包入库、删除、导出、枚举驱动2. 枚举设备、启用 / 禁用 / 删除设备、扫描硬件重枚举3. 查询硬件 ID、实例 ID、驱动节点、设备栈信息4. 驱动包签名校验、驱动安装 只做一件事:创建 / 销毁软件虚拟设备、ROOT 根枚举测试设备不能管理真实硬件、不能安装驱动包;创建 DevNode 后,需要 pnputil 安装驱动配套使用 1. 枚举本地 / 远程计算机设备、查询硬件 ID、驱动节点2. enable/disable/remove/rescan 设备3. 旧版install创建 ROOT 测试设备(该功能现已由 DevGen 替代)4. 支持远程计算机设备查询(pnputil 无远程能力)
典型使用场景 运维、生产服务器、批量驱动部署、设备故障排查、自动化脚本 驱动开发测试:虚拟设备测试、模拟 ROOT 总线设备、驱动测试用例(禁止生产环境) 老驱动项目遗留脚本、老旧测试环境;新项目微软建议迁移到 pnputil+devgen 组合
持久化特性 操作真实硬件设备,改动永久生效 SWD 软件设备:重启自动消失;ROOT 根枚举设备重启保留 删除设备节点,驱动包保留在 DriverStore
局限性 不支持远程计算机设备管理;不能直接创建虚拟测试设备 无驱动管理能力,仅创建 / 删除设备节点;仅管理员;仅限测试 部分 API 老旧;部分行为非标准化;官方不再维护迭代;devcon install创建根设备已废弃
官方推荐状态 ✅ 推荐首选 ✅ 测试场景专用 ❌ 弃用,仅存量维护,不推荐新项目

底层原理与调用链简述

1. PnPUtil

参数解析 → setupapi.dll(INF 解析、驱动包入库) → cfgmgr32.dll(CM API 操作 DevNode) → IOCTL 下发 pnp.sys 内核 PnP 管理器; 可直接操作 DriverStore,内置驱动包哈希、签名校验。

2. DevGen

参数解析 → cfgmgr32.dll → 直接调用内核 PnP 接口创建软件设备 DevNode; 不处理驱动包、不解析 INF;只创建设备节点;驱动安装需要搭配pnputil /add-driver /install。

替代旧 DevCon devcon install创建根设备的能力Microsoft ...

3. DevCon.exe

命令解析 → SetupAPI SetupDi 系列 API 创建设备信息集 HDEVINFO → cfgmgr32 CM API; 本质是SetupAPI 的示例 Demo 程序,微软不推荐生产环境重度依赖;支持远程设备查询是它独有的遗留特性。

关键差异要点(重点)

  1. 职责分割
    • PnPUtil:驱动包管理 + 真实硬件设备生命周期管理(生产主力)
    • DevGen:只生成虚拟测试设备节点(纯测试,不碰驱动文件)
    • DevCon:老式一体化设备管理工具,现已拆分,原 devcon install 拆分为 DevGen (创设备)+PnPUtil (装驱动)
  2. 远程能力 DevCon 支持远程主机设备查询;PnPUtil、DevGen仅本地计算机。
  3. 生产 / 测试边界 DevGen 明确禁止用于生产环境;DevCon 不建议生产;pnputil 是唯一允许生产环境使用。

常用等价命令对照(迁移参考)

旧 DevCon 命令 功能 现代等价组合
devcon find / findall 枚举设备 pnputil /enum-devices /connected
devcon disable 禁用设备 pnputil /disable-device
devcon remove 删除设备节点 pnputil /remove-device
devcon install xxx.inf 创建 ROOT 测试设备 + 安装驱动 devgen /add /bus ROOT + pnputil /add-driver xxx.inf /install
devcon rescan 扫描新硬件 pnputil /scan-devices

边界区分

  • 真实物理硬件(PCI/USB 网卡显卡):只用 pnputil
  • 驱动开发,需要虚拟 ROOT / 软件设备做驱动测试:DevGen + PnPUtil 组合
  • DevCon:仅维护旧脚本迁移,新项目不再使用。
命令工具 功能描述 主要用途 示例命令
PnPUtil 管理驱动程序的安装、卸载和查询 安装、删除和列出设备驱动程序 pnputil /enum-devices
DevCon.exe 管理设备驱动的启用/禁用/安装操作 启用、禁用、安装和查询设备驱动 devcon enable "DeviceID"
DISM 部署映像服务和管理工具,用于管理系统映像 修复系统映像、管理驱动程序和功能 dism /online /cleanup-image /restorehealth
PowerShell 更强大的命令行脚本工具,支持设备和驱动管理 自动化管理任务,管理设备和驱动程序,系统管理 Get-WmiObject Win32_PnPSignedDriver
Device Manager 图形化的设备管理工具 用于管理硬件设备,安装驱动程序等操作(通过GUI) 无命令行示例(使用图形界面)

 

命令工具 功能描述 主要用途 示例命令
PnPUtil 管理设备驱动程序的安装、卸载和查询 安装、删除和列出设备驱动程序 pnputil /enum-devices
DevGen 生成与设备相关的配置文件 创建设备配置文件 devgen /create-config "文件路径"
DevCon.exe 设备管理命令行工具,启用/禁用设备驱动 启用、禁用、安装和查询设备驱动 devcon find *
DISM 部署映像服务和管理工具,用于管理系统映像 修复系统映像、管理驱动程序和功能 dism /online /cleanup-image /restorehealth
PowerShell 命令行脚本工具,功能更强大 自动化任务,管理设备和驱动程序,系统管理 Get-WmiObject Win32_PnPSignedDriver

 

命令工具 功能描述 主要用途 示例命令
PnPUtil 管理驱动程序的安装和卸载 列出、安装、删除设备驱动程序 pnputil /enum-devices
DevGen 生成设备配置文件 创建设备配置文件,通常与硬件相关 devgen /create-config "文件路径"
DevCon.exe 管理设备驱动的启用/禁用/安装 启用、禁用、安装设备驱动,替代设备管理器 devcon enable "DeviceID"

PnPUtil、DevGen 和 DevCon.exe 这三种工具的对比,涵盖它们的主要功能和区别:

工具名称 PnPUtil DevGen DevCon.exe
功能描述 用于安装、删除和管理设备驱动程序。 用于生成和管理设备安装信息(主要用于驱动程序开发)。 用于管理设备和驱动程序,包括启用、禁用、重启设备等操作。
用途 主要用于驱动程序的管理。 驱动程序开发中用于生成设备和驱动程序安装的 INF 文件。 用于在命令行下管理设备,支持与设备进行交互(如启用/禁用设备)。
操作范围 管理设备驱动程序,包括添加、删除、查询和更新驱动。 生成设备安装相关信息,主要用于驱动程序开发人员。 管理本地和远程计算机上的设备,操作广泛,包括设备启用、禁用等。
使用环境 主要用于 Windows 系统的设备驱动管理。 主要用于 Windows 驱动开发环境。 用于 Windows 系统,支持命令行交互,适用于设备管理。
命令行支持 支持命令行操作。 不提供广泛的命令行支持,主要通过开发工具使用。 支持命令行操作,可通过命令行对设备进行各种操作。
是否支持远程设备管理 不直接支持远程设备管理。 不支持远程管理。 支持远程设备管理,可以管理本地和远程计算机的设备。
是否需要管理员权限 是,需要管理员权限。 需要管理员权限。 是,需要管理员权限。
是否包含在 Windows 中 包含在 Windows 中,通常在系统中自带。 需要从 Windows 驱动程序开发包 (WDK) 中获取。 包含在 Windows 中,通常可以通过命令行工具访问。
主要命令示例 pnputil /add-driver <路径>(添加驱动) 用于生成 INF 文件,具体命令依赖于开发工具和需要的文件类型。 devcon disable <设备ID>(禁用设备)

 

  • PnPUtil 主要用于设备驱动程序的管理,特别是驱动的安装、更新和删除。
  • DevGen 主要面向驱动程序开发人员,帮助生成设备安装信息,如 INF 文件。
  • DevCon.exe 则是一个更通用的设备管理工具,能够启用、禁用、重启设备等,适用于日常的设备管理工作,支持本地和远程设备操作。

 

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

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

 
posted @ 2023-10-22 18:52  suv789  阅读(1263)  评论(0)    收藏  举报