guide · static export
Hardware · drivers

Roll Back a Driver That Broke a Device

A new driver update turned a working device into an error in Device Manager. Windows keeps the old package for a while; when that is gone, pnputil lets you remove the bad one and install the version you know works.

by@guidox updated:10/31/26 time:25 min level:Intermediate tested on:Windows 11 24H2 works on:Windows 10, Windows 11, Windows Server 2019 tools:PowerShell as administrator, The old driver package
TL;DR

Try **Roll Back Driver** in Device Manager first. If it is greyed out, remove the package with **pnputil /delete-driver oemXX.inf /uninstall**, then install the older INF with **pnputil /add-driver ... /install**.

Before you start

Requirements

  • Admin rights
  • The previous driver package or its vendor page
  • 25 minutes
Step by step

Instructions

01

Confirm the device, not the symptom

**Get-PnpDevice** with a problem status gives you the instance ID that every later command needs. A yellow mark in Device Manager is the same information in graphical form.

Get-PnpDevice | Where-Object Status -ne 'OK' | Select-Object Status,Class,FriendlyName,InstanceId
Get-CimInstance Win32_PnPSignedDriver | Where-Object DeviceName -like '*Audio*' | Select-Object DeviceName,DriverVersion,DriverDate,InfName
02

Look for the built-in rollback

**Roll Back Driver** restores the previously installed package in one click. It only exists while Windows still holds that package, so check it before doing anything else.

devmgmt.msc
:: right-click the device > Properties > Driver tab > Roll Back Driver
pnputil /enum-drivers | Select-String 'oem' -Context 0,4
tipRollback survives a reboot but not always a feature update. Export the working driver with **pnputil /export-driver** once you have a known good state.
03

Identify which package is the broken one

**pnputil /enum-drivers** lists published names, original INFs, versions and the signing date. The published name (oemNN.inf) is what you remove; the original name identifies the vendor package.

pnputil /enum-drivers
:: Published Name: oem14.inf
:: Original Name:  rt640x64.inf
:: Driver Version: 10.0.19041.1
Get-WindowsDriver -Online | Select-Object Driver,OriginalFileName,Version,Date | Sort-Object Date -Descending | Select-Object -First 10
04

Remove the bad package

**/delete-driver** with **/uninstall** removes the package and detaches it from the device in one step. Without /uninstall the files stay bound to the hardware and the next scan reinstalls them.

pnputil /delete-driver oem14.inf /uninstall /force
pnputil /enum-drivers | Select-String 'oem14'
⚠ warningDeleting a storage or network driver package can leave the machine without that device until the next reboot. Have the replacement INF on a local disk, not on the network.
05

Install the version you trust

**pnputil /add-driver ... /install** stages the INF and binds it immediately. Point it at the INF file, not at a folder full of setup.exe files from the vendor.

pnputil /add-driver C:\Drivers\rt640\rt640x64.inf /install
pnputil /enum-drivers | Select-String 'rt640' -Context 0,3
Restart-Computer
06

Verify that the device and the version changed

Green status plus the expected driver version is the proof. A device that reports OK but keeps the new version means Windows re-selected the newer package from Windows Update.

Get-PnpDevice -InstanceId 'HDAUDIO\FUNC_01&VEN_10EC&DEV_0255' | Select-Object Status,FriendlyName
Get-CimInstance Win32_PnPSignedDriver | Where-Object DeviceName -like '*Realtek*' | Select-Object DriverVersion,DriverDate
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object Id -eq 219
Troubleshooting

Common issues

Roll Back Driver is greyed out

Windows no longer holds the older package, usually after a clean install or a feature update. Use the vendor INF and the pnputil route instead.

The old version returns after a reboot

Windows Update re-offered it. Hide or defer the driver update, or install the vendor package that carries a higher version number than the one Update ships.

pnputil reports the package is in use

A device is bound to it. Disable the device in Device Manager, delete the driver, then reinstall. For storage controllers do this from the recovery environment.

The device disappeared completely

The uninstall removed the hardware node. Run Scan for hardware changes, or install the INF and reboot so the device is re-enumerated.

FAQ

Frequently asked

Does deleting a driver break my Windows install?

Not for peripheral drivers. For storage and chipset drivers, have the INF ready before you delete anything and avoid rebooting mid-way.

Where does Windows keep the old package?

In the driver store under C:\Windows\System32\DriverStore\FileRepository. pnputil works with it, and hand-deleting folders there is what breaks devices.

How to undo this

Install the newer package again with pnputil /add-driver <inf> /install, or let Windows Update re-offer it. The store keeps both versions until you delete one explicitly.

Changelog · 1 entry
  1. 2026-10-31
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress