PnPUtil 命令语法

PnPUtil (PnPUtil.exe) 包含在从 Windows Vista 开始的每个版本的 Windows 中,位于 %windir%\system32 目录中。

若要运行 PnPUtil,请打开命令提示符窗口, (以管理员身份运行) 并使用以下语法和参数键入命令。

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

将驱动程序包 () 添加到驱动程序存储中。 从 Windows 10 版本 1607 开始提供命令。

PNPUTIL /add-driver <filename.inf | *.inf> [/subdirs] [/install] [/reboot]

从 Windows 10 版本 1607 开始可用的标志:

  • /subdirs - 遍历驱动程序包的子目录
  • /install - 在任何匹配的设备上安装/更新驱动程序
  • /reboot - 如果需要完成操作,请重新启动系统

注意

如果驱动程序不是系统上排名最高的驱动程序,PnPUtil 不会强制其安装到设备上。 若要检查匹配驱动程序及其排名,请在提升的命令提示符下运行以下命令:pnputil /enum-devices /instanceid <devgen device instance ID ROOT\DEVGEN{...}> /drivers

/delete-driver

从驱动程序存储中删除驱动程序包。 从 Windows 10 版本 1607 开始提供命令。

PNPUTIL /delete-driver <oem#.inf> [/uninstall] [/force] [/reboot]

从 Windows 10 版本 1607 开始可用的标志:

  • /uninstall - 从使用它的任何设备卸载驱动程序包
  • /force - 删除驱动程序包,即使设备正在使用它
  • /reboot - 如果需要完成操作,请重新启动系统

/export-driver

将驱动程序包 () 从驱动程序存储导出到目标目录。 从 Windows 10 版本 1607 开始提供命令。

PNPUTIL /export-driver <oem#.inf | *> <target directory>

/enum-drivers

枚举驱动程序存储中的所有第三方驱动程序包。 从 Windows 10 版本 1607 开始提供命令。

PNPUTIL /enum-drivers [/class <name | GUID>] [/files]

从 Windows 11 版本 21H2 开始可用的标志:

  • /class <name | GUID> - 按驱动程序类名或 GUID 进行筛选

从 Windows 11 版本 22H2 开始可用的标志:

  • /files - 枚举所有驱动程序包文件

/disable-device

禁用系统上的设备。 从 Windows 10 版本 2004 开始提供命令。

PNPUTIL /disable-device [<instance ID> | /deviceid <device ID>]
                        [/class <name | GUID>]
                        [/bus <name | GUID>]
                        [/reboot] [/force]

从 Windows 10 版本 2004 开始可用的标志:

  • /reboot - 如果需要完成操作,请重新启动系统

从 Windows 11 版本 21H2 开始可用的标志:

  • /deviceid <device ID> - 禁用具有匹配设备 ID 的所有设备

从 Windows 11 版本 22H2 开始可用的标志:

  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /bus <name | GUID> - 按总线枚举器名称或总线类型 GUID 进行筛选
  • /force - 即使设备提供关键系统功能,也禁用

/enable-device

在系统上启用设备。 从 Windows 10 版本 2004 开始提供命令。

PNPUTIL /enable-device [<instance ID> | /deviceid <device ID>]
                       [/class <name | GUID>] [/bus <name | GUID>]
                       [/reboot]

从 Windows 10 版本 2004 开始可用的标志:

  • /reboot - 如果需要完成操作,请重新启动系统

从 Windows 11 版本 21H2 开始可用的标志:

  • /deviceid <device ID> - 启用具有匹配设备 ID 的所有设备

从 Windows 11 版本 22H2 开始可用的标志:

  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /bus <name | GUID> - 按总线枚举器名称或总线类型 GUID 进行筛选

/restart-device

重启系统上的设备。 从 Windows 10 版本 2004 开始提供命令。

PNPUTIL /restart-device [<instance ID> | /deviceid <device ID>]
                        [/class <name | GUID>] [/bus <name | GUID>]
                        [/reboot]

从 Windows 10 版本 2004 开始可用的标志:

  • /reboot - 如果需要完成操作,请重新启动系统

从 Windows 11 版本 21H2 开始可用的标志:

  • /deviceid <device ID> - 重启具有匹配设备 ID 的所有设备

从 Windows 11 版本 22H2 开始可用的标志:

  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /bus <name | GUID> - 按总线枚举器名称或总线类型 GUID 进行筛选。

/remove-device

尝试从系统中删除设备。 从 Windows 10 版本 2004 开始提供命令。

PNPUTIL /remove-device [<instance ID> | /deviceid <device ID>]
                       [/class <name | GUID>] [/bus <name | GUID>]
                       [/subtree] [/reboot] [/force]

从 Windows 10 版本 2004 开始可用的标志:

  • /subtree - 删除整个设备子树,包括任何子设备
  • /reboot - 如果需要完成操作,请重新启动系统

从 Windows 11 版本 21H2 开始可用的标志:

  • /deviceid <device ID> - 删除具有匹配设备 ID 的所有设备

从 Windows 11 版本 22H2 开始可用的标志:

  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /bus <name | GUID> - 按总线枚举器名称或总线类型 GUID 进行筛选
  • /force - 即使设备提供关键系统功能,也会删除

/scan-devices

扫描系统是否有任何设备硬件更改。 从 Windows 10 版本 2004 开始提供命令。

/scan-devices [/instanceid <instance ID>] [/async]

从 Windows 10 版本 2004 开始可用的标志:

  • /instanceid <instance ID> - 扫描设备子树中的更改
  • /async - 异步扫描更改

/enum-devices

枚举系统上的所有设备。 从 Windows 10 版本 1903 开始提供命令。

PNPUTIL /enum-devices [/connected | /disconnected]
                      [/instanceid <instance ID> | /deviceid <device ID>]
                      [/class <name | GUID>] [/problem [<code>]]
                      [/bus [<name | GUID>]] [/deviceids] [/relations]
                      [/services] [/stack] [/drivers] [/interfaces]
                      [/properties] [/resources]

从 Windows 10 版本 1903 开始可用的标志:

  • /connected - 按连接的设备进行筛选
  • /disconnected - 按断开连接的设备进行筛选
  • /instanceid <instance ID> - 按设备实例 ID 进行筛选
  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /problem [<code>] - 按有问题的设备进行筛选或按特定问题代码进行筛选
  • /relations - 显示父设备与子设备关系

从 Windows 10 版本 2004 开始可用的标志:

  • /drivers - 显示匹配和已安装的驱动程序

从 Windows 11 版本 21H2 开始可用的标志:

  • /bus [<name | GUID>] - 显示总线枚举器名称和总线类型 GUID,或按总线枚举器名称或总线类型 GUID 进行筛选
  • /deviceids - 显示硬件和兼容 ID
  • /services - 显示设备服务
  • /stack - 显示有效的设备堆栈信息
  • /interfaces - 显示设备接口
  • /properties - 显示所有设备属性

从 Windows 11 版本 22H2 开始可用的标志:

  • /deviceid <device ID> - 按设备硬件和兼容 ID 进行筛选
  • /resources - 显示设备资源

/enum-devicetree

枚举设备树。

命令从 Windows 11 版本 23H2 开始可用。

/enum-devicetree [root device instance ID] [/connected] [/services]
                 [/stack] [/drivers] [/interfaces]

root device instance ID - 从指定的根设备实例 ID 开始显示设备树。

Flags

  • /connected - 按连接的设备进行筛选
  • /services - 显示设备服务
  • /stack - 显示有效的设备堆栈信息
  • /drivers - 显示匹配和已安装的驱动程序
  • /interfaces - 显示设备接口

/enum-interfaces

枚举系统上的所有设备接口。

命令从 Windows 10 版本 1903 开始可用。

PNPUTIL /enum-interfaces [/enabled | /disabled] [/class <GUID>] [/properties]

从 Windows 10 版本 1903 开始可用的标志:

  • /enabled - 按已启用的接口进行筛选
  • /disabled - 按禁用的接口进行筛选
  • /class <GUID> - 按接口类 GUID 进行筛选

从 Windows 11 版本 22H2 开始可用的标志:

  • /properties - 显示所有接口属性

/enum-classes

枚举系统上的所有设备类。

命令从 Windows 11 版本 22H2 开始可用。

PNPUTIL /enum-classes [/class <name | GUID>] [/services]

从 Windows 11 版本 22H2 开始可用的标志:

  • /class <name | GUID> - 按设备类名称或 GUID 进行筛选
  • /services - 显示设备类服务

/enum-containers

枚举系统上的所有设备容器。

命令从 Windows 11 版本 23H2 开始可用。

PNPUTIL /enum-containers [/containerid <container id>] [/connected | /disconnected]
                         [/problem] [/devices] [/format <txt | xml | csv>]
                         [/output-file [<filename>]]

Flags

/containerid <container id> - 按容器 ID 进行筛选。

/connected | /disconnected - 按连接的设备容器进行筛选或按断开连接的设备容器进行筛选

/problem - 按有问题的设备容器进行筛选

/devices - 显示容器设备

/format - 将输出格式设置为文本、XML 或 CSV

/output-file [<filename>] - 将输出写入可选文件名

/?

显示命令行语法。

PNPUTIL /?

旧命令映射

以下命令仍受支持,但是旧版命令。 建议改用最新的语法。

  -a [-i]  <filename.inf> ==> /add-driver <filename.inf> [/install]

  -d [-f]  <oem#.inf>     ==> /delete-driver <oem#.inf> [/force]

  -e                      ==> /enum-drivers

示例

有关如何使用 PnPUtil 工具的示例,请参阅 PnPUtil 示例

另请参阅

PnPUtil