Printer troubleshooting technician providing live chat help

Joe B.

Reviewed for technical accuracy

Specialities: Windows print stack, DriverStore cleanup (PnPUtil), Print Spooler reset, PowerShell PrintManagement, TCP/WSD/USB ports

Printer won’t remove, stuck driver package, ghost printer — clean DriverStore with PnPUtil, remove-PrinterDriver, reset spooler

Technician avatar Technician
We’ll force-remove the printer and its DriverStore package cleanly. Quick scan first:
• Windows version (10/11) and printer connection (USB, WSD, TCP/IP, Bluetooth).
• Where removal fails: Settings → Bluetooth & devices → Printers & scanners, Devices and Printers, or Print Server Properties → Drivers?
• Any spooler errors, stuck jobs, or “in use/installed” message when clicking Remove?
Customer
Windows 11. USB printer was removed, but the old HP XYZ still shows as a greyed “ghost” and won’t uninstall. Print Server says the driver is in use.
Technician avatar Technician
Got it. Two things usually block removal:
1) Spooler holds files/handles (stuck .spl/.shd) so Windows says the driver is “in use”.
2) The driver package still lives in DriverStore (oem*.inf), so Windows silently re-installs it.
We’ll clear the queue, stop the spooler, remove the printer/port, then delete the DriverStore package with PnPUtil and PowerShell’s Remove-PrinterDriver.
Customer
Sounds good. What are the exact steps? I have admin rights.
Technician avatar Technician
Step 1 — Reset the Print Spooler & purge stuck jobs
1) Open Services → stop **Print Spooler**.
2) Go to C:\Windows\System32\spool\PRINTERS and delete *.spl and *.shd files (queue).
3) Start **Print Spooler** again.

Step 2 — Remove the printer & its port
• Settings → Bluetooth & devices → Printers & scanners → remove the device.
• Open Control Panel → Devices and Printers → ensure it’s gone. If a WSD/TCP port remains, remove it under **Printer server properties → Ports**.

Step 3 — Delete the driver object
• Open Print Server Properties → Drivers → select the model → **Remove…** (choose **Remove driver and driver package** if offered). If “in use”, proceed to Step 4.
Customer
The Remove button still says the driver is in use even after clearing the queue.
Technician avatar Technician
No problem — we’ll remove it via PrintManagement and PnPUtil (admin).
1) Open **Windows PowerShell (Admin)** and run:
Get-PrinterDriver → note the exact **Name** → then:
Remove-PrinterDriver -Name "HP XYZ"
2) Enumerate DriverStore packages:
pnputil /enum-drivers → find the vendor INF (e.g., oem42.inf with your HP model).
3) Uninstall and delete the package:
pnputil /delete-driver oem42.inf /uninstall /force
This removes the driver from DriverStore so Windows won’t auto-reinstall it on reboot or plug-in.
Customer
What if Windows says the driver is referenced by a device? I already removed the printer.
Technician avatar Technician
Check for hidden references:
• Open Device Manager → View → Show hidden devices → expand **Print queues** and **Printers** → uninstall any greyed entries.
• Re-stop **Print Spooler**, verify the PRINTERS folder is empty, then repeat Remove-PrinterDriver and pnputil /delete-driver.
• If the driver still resists, reboot and run the PnPUtil command again before opening any print apps.
Customer
Driver finally deleted. How do I prevent Windows from reinstalling the wrong driver when I plug the printer back in?
Technician avatar Technician
• Download the correct vendor package first (model-specific).
• Disconnect USB / remove TCP queue. After the DriverStore is clean, install the vendor driver, then connect the printer.
• On corporate PCs, ensure Windows Update doesn’t overwrite with a class driver; if needed, temporarily pause driver updates during install.
• Prefer TCP/IP port over WSD for stability on desktops.
Customer
If the queue gets stuck again, do I repeat the spooler reset? Is that safe?
Technician avatar Technician
Yes — it’s the standard fix for jammed jobs. Stop **Print Spooler**, empty PRINTERS folder, start the service, then re-send. If stalls persist, update the driver/firmware and confirm the correct port (USB vs TCP). Need a quick screen-share for the commands? Open the chat.
Customer
All cleared — ghost printer is gone and the new driver installed clean. Thanks!
Technician avatar Technician
Summary: For a printer that won’t uninstall, reset the spooler, remove the device/port, then delete the package from DriverStore using Remove-PrinterDriver and pnputil /delete-driver oem*.inf /uninstall /force. Reinstall with the correct package to prevent auto-readd. Want tailored commands for your model? Open the chat.

Quick answer: the accepted fix

Accepted fix when a printer won’t uninstall: stop Print Spooler and clear the queue, remove the device and its port, then delete the driver package from DriverStore with pnputil /enum-drivers → pnputil /delete-driver oem*.inf /uninstall /force and Remove-PrinterDriver. Reinstall the correct driver afterward.


Why Windows won’t remove a printer (spooler locks, DriverStore, WSD ports)

Uninstalls fail when the spooler still holds job files or when the vendor package persists in DriverStore (oem*.inf). Windows may also re-create a WSD queue on discovery. Clearing the queue, removing ports, and deleting the DriverStore INF prevents auto-reinstall and removes the “in use” state.

How to verify the driver is truly gone

Run Get-PrinterDriver — it should return empty for that model. pnputil /enum-drivers should show no matching oem*.inf. In Print Server Properties → Drivers the model should be absent, and Ports should not list its TCP/WSD entry. Re-plug the printer — Windows should prompt for driver install instead of silently adding a ghost.

Uninstall blocked — quick troubleshooting tips

Most “can’t remove printer” cases are spooler locks or DriverStore packages that auto-reinstall.

Quick path: stop **Print Spooler** → clear PRINTERS folder → remove device and port → Remove-PrinterDriver → pnputil /delete-driver oem*.inf /uninstall /force → reboot → install the correct package. Prefer TCP/IP over WSD for fixed desktops to avoid ghost queues.

Disclaimer: This information is AI-generated and intended for general guidance only. For advice specific to your environment, please consult a verified expert on Whizz-Tech before making decisions.


Getting Started Is Easy

Ask for help, 24/7

Members enjoy round-the-clock access to 12,000+ verified Experts, including tech support, mechanics, vets, and more.

Expert will respond in minutes

We match you with an Expert who specializes in your situation. Talk, text, or chat — whichever you prefer.

Save time & money

No scheduling hassles or expensive consults. Membership can save you significant time and money each month.

FAQ

Why does Windows say the printer driver is “in use” when uninstalling?

The Print Spooler may still hold queued files or handles. Stop the spooler, clear PRINTERS folder, start it again, then remove the driver and DriverStore package.

How do I delete the driver package from DriverStore?

Run pnputil /enum-drivers to find the oem*.inf for your model, then pnputil /delete-driver oem##.inf /uninstall /force (Administrator). This removes the package so Windows can’t auto-reinstall it.

PowerShell says it removed the driver, but it comes back. What now?

Remove the port (WSD/TCP) and delete the DriverStore INF. Reboot, then install the correct vendor package before reconnecting the printer.

Is clearing the spooler safe?

Yes. Deleting .spl/.shd queue files with the service stopped is the Microsoft-documented method to resolve stuck jobs and release driver locks.

Sources

Matt Verified Icon
Matt ● replies in < 1 min
Technician Expert
⭐⭐⭐⭐⭐ Trusted by 27,000+ customers
Avatar
Alex · Expert's Assistant