How to Use the pnputil /restart-device Command in Windows 11 to Power Cycle Problematic Hardware

Hardware glitches—such as a frozen USB audio interface, an unresponsive Bluetooth radio, or a display driver encountering kernel timeouts—traditionally prompt Windows users to perform a full system reboot. Alternatively, administrators navigate into Device Manager, right-click the offending peripheral, disable it, wait several seconds, and re-enable it manually.

Windows 11 includes a native, automated command-line alternative: pnputil /restart-device. As part of Microsoft’s built-in PnP (Plug and Play) utility, this command programmatically stops, unloads, and re-initialises target hardware devices in a single command, restoring normal driver communication without interrupting other running processes or rebooting the operating system. This guide covers how to identify device instance IDs and execute hardware power cycles using pnputil.

Understanding PnP Device Instance Paths

To restart a specific piece of hardware, Windows requires its unique Device Instance Path (or Instance ID). This string identifies the hardware bus, vendor ID, product ID, and revision:

USB\VID_046D&PID_C52B\5&1B2A3C4D&0&1

Device instance paths are permanent across reboots for physically installed hardware, allowing them to be safely hardcoded into automated administrative recovery scripts.

Step-by-Step Hardware Restart Procedure

1. Identify the Target Device Instance ID

Open PowerShell or Command Prompt with administrative privileges and query connected devices matching your hardware class:

# Query all connected Bluetooth devices
pnputil /enum-devices /class Bluetooth /connected

Locate the Instance ID in the returned output:

Instance ID:    USB\VID_8087&PID_0032\5&2B3C4D5E&0&1
Device Description: Intel(R) Wireless Bluetooth(R)
Class Name:     Bluetooth
Status:         Started

2. Execute the /restart-device Command

Pass the discovered Instance ID to pnputil with the restart switch:

pnputil /restart-device "USB\VID_8087&PID_0032\5&2B3C4D5E&0&1"

Windows immediately unloads the driver, issues a device reset signal over the bus controller, and re-initialises the hardware stack:

Microsoft PnP Utility

Restarting device: USB\VID_8087&PID_0032\5&2B3C4D5E&0&1
Device successfully restarted.

Automating Peripheral Restarts in PowerShell

Instead of copying instance IDs manually, write a one-line PowerShell script to automatically restart any malfunctioning device displaying an error code:

# Restart any device currently in an Error state
Get-PnpDevice | Where-Object { $_.Status -eq 'Error' } | ForEach-Object {
    Write-Host "Restarting malfunctioning device: $($_.FriendlyName)" -ForegroundColor Yellow
    pnputil /restart-device $_.InstanceId
}

Comparison of Windows Hardware Management Methods

Method Automation Capability Reboot Required? Best For
pnputil /restart-device Excellent (Single command) No Automated script recovery of frozen peripherals
Device Manager (GUI) None (Manual clicks) No Casual desktop troubleshooting
Disable-PnpDevice / Enable-PnpDevice High (PowerShell cmdlets) No Complex pipeline filtering in PowerShell scripts
System Restart (shutdown /r) High Yes Kernel-level hangs where bus drivers fail to respond

Troubleshooting Device Restart Failures

  • Error 0x5 (Access Denied): The command must be run from an elevated command prompt (Run as Administrator). Standard user shells lack PnP bus reset privileges.
  • Device In Use / Cannot Be Stopped: If a storage controller or network adapter is handling active system pagefiles or primary network traffic, the operating system may refuse the restart request to prevent a blue screen crash.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.