What a ghost driver is
Every device you ever plugged in left a driver package behind. Replace a GT 1030 with an RTX 3050 and the old NVIDIA package stays installed, registered in the registry, present in the driver store, just not bound to any physical device. Windows calls these non-present devices. Device Manager hides them by default, so for most users they simply don't exist.
The tricky part: tools that enumerate hardware through WMI see those registry entries too,
ghosts included, so even many monitoring apps can't tell a real device from a phantom one.
The reliable source of truth is pnputil /enum-devices /connected, which returns only hardware that is physically present right now.
The gap between the registry list and the connected list is your ghosts.
Does it actually matter?
Honest answer: usually it's hygiene, not a crisis. But there are three real cases:
- Driver conflicts: leftover GPU/audio packages can fight with current ones, especially after AMD↔NVIDIA switches. The classic symptom: random black screens after a "clean" GPU swap.
- Disk space: driver store packages range from a few MB to over 1 GB for GPU suites.
- Stale services: some ghosts leave services that still launch at boot, doing nothing useful.
Finding ghosts with pnputil
Open PowerShell as administrator and compare two lists:
# everything Windows knows about (incl. ghosts)
pnputil /enum-devices
# only what is physically connected right now
pnputil /enum-devices /connected
Any device that appears in the first list but not the second is non-present. Old GPUs, audio interfaces from a previous motherboard, USB devices you owned once, they'll all be there, often dozens of entries deep.
Removing them safely
Each device has an instance ID shown by the enum command. Removal:
pnputil /remove-device "<instance-id>"
Two safety rules. First, remove one device at a time and reboot if it was a GPU or storage class. Second, never bulk-delete by wildcard, one mistyped pattern can take out the driver of the disk you're booted from.
The automated way
PC Workman does this comparison automatically: its Driver Health page runs the registry-vs-connected diff per device class (GPU, Audio, Network, USB) and marks ghosts with a ⚠ badge directly on the card, including the device age and a one-click removal dialog with admin confirmation. The detection method is exactly the one described above, just without the typing.
Receipt PRO essay · silent failures The most dangerous bug does not crash. It succeeds. Six real failures that ran perfectly and did nothing, the week I let an assistant write more than I read, and the five checks that catch them. Read the essay →