Delete usb Device Driver

1.delete the *.inf and *.pnf file in the c:/windows/inf directory
2. delete the *.sys in c:/windows/system32/drivers
3. in xp, launch regedit, go to HKLM/system/currentcontrolset/enum/usb and find you VID/PID there. delete the key. You might need log in as admin and grant you permission in regedit to delete the key.
4. in win2k, launch regedt32, login as admin, grand you permission and delete the key
5. done
C:\Users\Admin> pnputil /rollback-driver "USB\VID_XXXX&PID_XXXX" /force PNPUTIL [/add-driver <...> | /delete-driver <...> | /export-driver <...> | /enum-drivers [<...>] | /enum-devices [<...>] | /enum-devicetree [<...>] | /disable-device <...> | /enable-device <...> | /restart-device <...> | /remove-device <...> | /scan-devices [<...>] | /enum-classes [<...>] | /enum-interfaces [<...>] | /enum-containers [<...>] | /?] 命令: /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 [/class <name | GUID>] [/files] [/ids] [/devices] [/format <txt | xml | csv>] [/output-file [<filename>]] 枚举驱动程序存储中的所有第三方驱动程序包。 /class <name | GUID> - 按驱动程序类名称或 GUID 筛选。 /files - 枚举所有驱动程序包文件。 /ids - 显示驱动程序包和系列 ID。 /devices - 显示安装了驱动程序包的设备。 /format - 将输出格式设置为 text、XML 或 CSV。 /output-file [<filename>] - 将输出写入可选文件名。 示例: 枚举所有 OEM 驱动程序包: pnputil /enum-drivers 枚举特定类的所有 OEM 驱动程序包: pnputil /enum-drivers /class "System" 枚举所有 OEM 驱动程序包并显示驱动程序文件: pnputil /enum-drivers /files /disable-device [<实例 ID> | /deviceid <设备 ID>] [/class <名称 | GUID>] [/bus <name | GUID>] [/reboot] [/force] 禁用系统上的设备。 /deviceid <device ID> - 禁用带匹配设备 ID 的所有设备。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /bus <name | GUID> - 按总线枚举器名称或总线类型 GUID 进行筛选。 /reboot - 根据需要重新启动系统以完成此操作。 /force - 即使设备提供关键系统功能,也禁用。 示例: 禁用设备: pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1" 禁用所有具有特定硬件/兼容 ID 的设备: pnputil /disable-device /deviceid "USB\Class_03" 在特定总线上禁用特定类的所有设备: pnputil /disable-device /class "USB" /bus "PCI" /enable-device [<instance ID> | /deviceid <device ID>] [/class <name | GUID>] [/bus <name | GUID>] [/reboot] 启用系统上的设备。 /deviceid <device ID> - 启用带匹配设备 ID 的所有设备。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /bus <name | GUID> - 通过总线枚举器名称或总线类型 GUID 进行筛选。 /reboot - 根据需要重新启动系统以完成此操作。 示例: 启用设备: pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1" 启用具有特定硬件/兼容 ID 的所有设备: pnputil /enable-device /deviceid "USB\Class_03" 在特定总线上启用特定类的所有设备: pnputil /enable-device /class "USB" /bus "PCI" /restart-device [<instance ID> | /deviceid <device ID>] [/class <name | GUID>] [/bus <name | GUID>] [/reboot] 重启系统上的设备。 /deviceid <device ID> - 重启带匹配设备 ID 的所有设备。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /bus <name | GUID> - 通过总线枚举器名称或总线类型 GUID 进行筛选。 /reboot - 根据需要重新启动系统以完成此操作。 示例: 重启设备: pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1" 重新启动具有特定硬件/兼容 ID 的所有设备: pnputil /restart-device /deviceid "USB\Class_03" 在特定总线上重启特定类的所有设备: pnputil /restart-device /class "USB" /bus "PCI" /remove-device [<instance ID> | /deviceid <device ID>] [/class <name | GUID>] [/bus <name | GUID>] [/subtree] [/reboot] [/force] 尝试从系统中删除设备。 /deviceid <device ID> - 删除所有设备 ID 匹配的设备。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /bus <name | GUID> - 通过总线枚举器名称或总线类型 GUID 进行筛选。 /subtree - 删除整个设备子树,包括任何子设备。 /reboot - 根据需要重新启动系统以完成此操作。 /force - 即使设备提供关键系统功能,也删除。 示例: 删除设备: pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1" 删除具有特定硬件/兼容 ID 的所有设备: pnputil /remove-device /deviceid "USB\Class_03" 在特定总线上删除特定类的所有设备: pnputil /remove-device /class "USB" /bus "PCI" /scan-devices [/instanceid <实例 ID>] [/async] 扫描系统以查找任何设备硬件更改。 /instanceid <实例 ID> - 在设备子树中扫描更改。 /async - 异步扫描更改。 示例: 扫描设备: pnputil /scan-devices /enum-devices [/connected | /disconnected] [/class <name |GUID>] [/instanceid <instance ID> | /deviceid <device ID>] [/problem [<code>]] [/bus [<name | GUID>]] [/deviceids] [/relations] [/services] [/stack] [/location] [/drivers] [/interfaces] [/properties] [/resources] [/format <txt | xml | csv>] [/output-file [<filename>]] 枚举系统上的所有设备。 /connected | /disconnected - 按连接的设备筛选或 按断开连接的设备筛选。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /instanceid <实例 ID> - 按设备实例 ID 筛选。 /deviceid <divice ID> - 按设备硬件/兼容 ID 筛选。 /problem [<代码>] - 按出现问题的设备筛选或 按特定问题代码筛选。 /bus [<name | GUID>]-显示总线枚举器名称和总线类型 GUID 或 按总线枚举器名称或总线类型 GUID 筛选。 /deviceids-显示硬件/兼容 ID。 /relations - 显示父级和子级设备关系。 /services - 显示设备服务。 /stack - 显示有效设备堆栈信息。 /location - 显示位置信息和路径。 /drivers - 显示匹配的驱动程序和已安装的驱动程序。 /interfaces - 显示设备接口。 /properties - 显示所有设备属性。 /resources - 显示设备资源。 /format - 将输出格式设置为 text、XML 或 CSV。 /output-file [<filename>] - 将输出写入可选文件名。 示例: 仅枚举系统上已连接的设备: pnputil /enum-devices /connected 枚举具有特定实例 ID 的设备: pnputil /enum-devices /instanceid "ACPI\PNP0A08\1" 枚举具有特定硬件/兼容 ID 的所有设备: pnputil /enum-devices /deviceid "USB\Class_03" 枚举具有特定类的所有设备: 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 <GUID>] [/instanceid <instance ID>] [/properties] [/format <txt | xml | csv>] [/output-file [<filename>]] 枚举系统上的所有设备接口。 /enabled | /disabled - 按启用的接口筛选或 按禁用的接口筛选。 /class <GUID> - 按接口类 GUID 筛选。 /instanceid <实例 ID> - 按设备实例 ID 筛选。 /properties - 显示所有接口属性。 /format - 将输出格式设置为 text、XML 或 CSV。 /output-file [<filename>] - 将输出写入可选文件名。 示例: 仅枚举系统上的已启用接口: pnputil /enum-interfaces /enabled 枚举具有特定接口类 GUID 的所有接口: pnputil /enum-interfaces /class {884b96c3-56ef-11d1-bc8c-00a0c91405dd} /enum-classes [/class <name | GUID>] [/services] [/format <txt | xml | csv>] [/output-file [<filename>]] 枚举系统上的所有设备设置类。 /class <名称 | GUID> - 按设备类名称或 GUID 筛选。 /services - 显示设备类服务。 /format - 将输出格式设置为 text、XML 或 CSV。 /output-file [<filename>] - 将输出写入可选文件名。 示例: 枚举系统上的所有设备设置类: pnputil /enum-classes 枚举特定设备设置类的信息: pnputil /enum-classes /class 显示 pnputil /enum-classes /class {4d36e968-e325-11ce-bfc1-08002be10318} /enum-devicetree [根设备实例 ID] [/connected] [/services] [/stack] [/drivers] [/interfaces] 枚举设备树。 /connected - 按连接的设备筛选。 /services - 显示设备服务。 /stack - 显示有效设备堆栈信息。 /drivers - 显示匹配的驱动程序和已安装的驱动程序。 /interfaces - 显示设备接口。 示例: 枚举设备树: pnputil /enum-devicetree 使用 “ACPI\PNP0A03\0” 作为根枚举设备树: pnputil /enum-devicetree "ACPI\PNP0A03\0" 枚举已连接设备的树并显示设备接口: pnputil /enum-devicetree /connected /interfaces /enum-containers [/containerid <container id>] [/connected | /disconnected] [/problem] [/devices] [/format <txt | xml | csv>] [/output-file [<filename>]] 枚举系统上的所有设备容器: /containerid <container id> - 按容器 ID 筛选。 /connected |/disconnected - 按连接的设备容器或 筛选 按断开连接的设备容器筛选。 /problem - 按存在问题的设备容器进行筛选。 /devices - 显示容器设备。 /format - 将输出格式设置为 text、XML 或 CSV。 /output-file [<filename>] - 将输出写入可选文件名。 示例: 枚举系统上的所有设备容器: pnputil /enum-containers 枚举特定设备容器: pnputil /enum-containers /containerid "{00000000-0000-0000-ffff-ffffffffffff}" 枚举所有连接的设备容器和关联的设备: pnputil /enum-containers /connected /devices /? 显示使用情况屏幕。 PS C:\Users\Admin>
最新发布
07-25
<think>嗯,用户需要了解如何使用pnputil命令回滚特定USB设备的驱动程序。用户提供了设备ID格式USB\VID_XXXX&PID_XXXX,这很关键,说明用户已经掌握了硬件ID的基本格式。 从用户引用内容看,用户可能遇到了驱动程序更新后设备异常的情况,或者新驱动不兼容问题。引用中提到的设备枚举流程和禁止安装策略,暗示用户可能已经尝试过其他解决方法但未成功,现在需要更直接的驱动程序回滚操作。 pnputil是Windows自带的强大驱动管理工具,回滚功能需要管理员权限。考虑到用户能提供完整的硬件ID,应该具备一定的技术基础,但可能需要具体语法指导。需要强调几个关键点: - 必须使用管理员身份运行CMD/PowerShell - 硬件ID必须完全匹配设备管理器中的值 - 回滚操作会恢复到系统自动保存的上一个驱动版本 用户没有说明操作系统版本,不过pnputil在Win8及以上用法基本一致。需要提醒备份当前驱动以防万一,虽然系统会自动保留多个版本。 安全方面要注意:回滚操作可能被安全软件拦截,建议临时禁用杀毒软件。另外某些系统关键设备(如芯片组驱动)不支持回滚,但USB设备通常没问题。 可以补充说明:如果回滚后仍不正常,建议彻底卸载驱动后用旧版驱动手动安装。用户引用的组策略设置[^2]也表明用户可能考虑过彻底阻止自动更新,这个可以作为延伸建议。</think>以下是使用 `pnputil` 命令回滚特定 USB 设备驱动程序的详细步骤(以设备 ID `USB\VID_XXXX&PID_XXXX` 为例): --- ### **操作步骤** 1. **以管理员身份启动命令行** - 按 `Win + R` 输入 `cmd` → 右键选择“以管理员身份运行”。 2. **获取设备实例路径** 执行以下命令查找目标设备的完整实例路径(关键步骤): ```powershell pnputil /enum-devices /connected /class USB /instanceid "USB\VID_XXXX&PID_XXXX" ``` - **输出示例**: ``` 实例 ID: USB\VID_1234&PID_5678\5&1A2B3C4D 设备描述: USB 复合设备 ``` - **记录 `实例 ID` 的值**(如 `USB\VID_1234&PID_5678\5&1A2B3C4D`)。 3. **执行驱动程序回滚** 使用记录的实例 ID 触发回滚: ```powershell pnputil /rollback-driver <实例ID> /force ``` - **示例**: ```powershell pnputil /rollback-driver USB\VID_1234&PID_5678\5&1A2B3C4D /force ``` - **参数说明**: - `/rollback-driver`:指定回滚操作。 - `/force`:强制回滚(即使系统未提示问题)。 4. **重启设备** - 物理拔出并重新插入 USB 设备,或通过设备管理器禁用再启用设备。 --- ### **验证回滚结果** - **方法 1**:检查设备管理器 右键单击设备 → 选择“属性” → “驱动程序”选项卡 → 查看“驱动程序版本”是否变为旧版本。 - **方法 2**:查看操作日志 在命令行运行: ```powershell pnputil /enum-drivers ``` 在输出列表中查找目标驱动,确认 `回滚版本` 字段标记为 `是`。 --- ### **注意事项** 1. **权限要求** 必须使用**管理员权限**运行命令提示符,否则会提示“拒绝访问”。 2. **实例 ID 准确性** 设备实例 ID 包含唯一硬件标识(如 `5&1A2B3C4D`),需通过 `/enum-devices` 精确获取[^1]。 3. **系统驱动备份** 回滚依赖 Windows 自动保存的旧驱动副本(默认保留最近版本),若从未更新过驱动则无法回滚。 4. **强制回滚风险** `/force` 参数可能中断设备使用,建议先卸载问题驱动(`pnputil /delete-driver <驱动.inf>`)再回滚。 --- ### **故障排查** - **错误 "找不到设备"** 检查设备实例 ID 是否包含完整路径(如 `USB\VID_XXXX&PID_XXXX\序列号`)。 - **错误 "不支持此操作"** 系统未保存旧版驱动备份,需手动安装旧版本驱动。 - **驱动签名警告** 若旧驱动未签名,需在启动时按 `F8` 禁用驱动程序强制签名。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值