Windows

Get rid of old device drivers hidden in Vista

Over time unused, but still installed, drivers installed in Microsoft Vista can cause problems if they inadvertently become enabled. Greg Shultz shows you how to use a special feature in Device Manager that allows it to display non-present devices.

In a recent edition of the Microsoft Windows Vista and Windows 7 Report, "Troubleshoot Vista System Drivers More Efficiently with These Tools," I told you that while many of the most common driver problems have been solved, you may still incur strange or erratic problems related to drivers in Vista. I then showed you a couple of tools (Driver Query and Driver View) that you can use to gather information on device drivers. However, I was reminded that Windows Vista retains old drivers even if you upgrade or change hardware.

For example, Vista knows that removable USB devices aren't always connected, but it retains the drivers so that they will be ready the next time you connect the device. So what happens to that driver if you never connect that device to your computer again?

Over time these unused, but still installed, drivers can cause problems if they inadvertently become enabled. They can cause hardware conflicts or just cause the system to behave erratically. Fortunately, in addition to using the tools described in the previous article, when you're troubleshooting a problem in Vista that you suspect is related to a driver, you can locate and remove any old and unused drivers by enabling a special feature in Device Manager that allows it to display non-present devices.

In this issue of the Windows Vista and Windows 7 Report, I'll show you how to use this special feature in Device Manager.

This blog post is also available in PDF format in a TechRepublic download.

Activating non-present devices mode

In order to configure Device Manager to display non-present devices you will need to add an environment variable DEVMGR_SHOW_NONPRESENT_DEVICES to the Environment Variables dialog box. To begin, access the Start menu, right-click on Computer, and select the Properties command. When you see the System window, select the Advanced System Settings link, as shown in Figure A. When you do, you'll encounter a UAC and will have to deal with it appropriately.

Figure A

Once the System window appears, select the Advanced System Settings link.
When the System Properties dialog box appears, click the Environment Variables button, as shown in Figure B.

Figure B

Locate and click the Environment Variables button at the bottom of the System Properties dialog box.
When you see the Environment Variables dialog box, shown in Figure C, you'll see that it contains two panels titled User Variables and System Variables. Environment variables added to the User Variables panel will be available only when that user logs on. Environment variables added to the System Variables panel will be available to all users. To avoid limiting yourself to one user account, I recommend that you add the devmgr_show_nonpresent_devices environment variable to the System Variables panel.

Figure C

You'll click the New button in the System Variables panel.
Click the New button. When the New System Variable dialog box appears, type devmgr_show_nonpresent_devices in the Variable Name text box and type 1 in the Variable Value text box, as shown in Figure D.

Figure D

Use the New System Variable dialog box to set up the new environment variable.

Then, click OK twice -- once to close the New System Variable dialog box and once to close the Environment Variables dialog box.

Removing non-present devices in Device Manager

To view the non-present devices, access the Start menu, right-click on Computer, and select Manage. When the Computer Management window appears, select Device Manager. Once Device Manager is active, pull down the View menu and select Show Hidden Devices. Now, open the various branches in the Device Manager tree and look for device icons that appear translucent or faded. On my example system I found a slew of non-present devices, as shown in Figure E.

Figure E

Non-present devices have icons that appear translucent or faded.

To remove the device drivers for any of the non-present devices, simply right-click on the faded icon and select the Uninstall command. Once you are done, close Device Manager and just for good measure, restart your system.

What's your take on driver problems?

Have you encountered problems with drivers in Windows Vista? Will you use Device Manager's non-present devices mode? As always, if you have comments or information to share about this topic, please take a moment to drop by the Discussion area and let us hear from you.

TechRepublic's Windows Vista and Windows 7 Report newsletter, delivered every Friday, offers tips, news, and scuttlebutt on Windows development, as well as a look at new features in the latest version of the Windows OS. Automatically sign up today!

About

Greg Shultz is a freelance Technical Writer. Previously, he has worked as Documentation Specialist in the software industry, a Technical Support Specialist in educational industry, and a Technical Journalist in the computer publishing industry.

34 comments
waz.up.52
waz.up.52

WHY GOTO ALL THAT Trouble lol THE EASY WAY: 1. Click Show/Hide Action Pane (In the top menu bar of device manager) on the left a action panel will open up 2. Click More Options (In Action Panel) 3. Run Mouse Over View Option (First Option) 4. Click Show Hidden Devices (5 Down) DONE. it should show all hidden devices and you can remove, view, whatever P.S I'm 15 Years Old. I Saw This Post And Laughed!

dhamilt01
dhamilt01

I have hundreds and hundreds of translucent Generic Volume Shadow Copy device drivers. Is this a problem? Do I need to get rid of them? Thanks.

bill
bill

What if you find and item listed 4-5 times, 1 is soild the others are faded out?

lalitstar
lalitstar

Instead of all this stuff, use registry cleaner to find out un-used device drivers. I use free CCleaner to keep the registry slim n trim.

david
david

What would the appropriate action be when you encounter duplicate device entries in device manager, one being active and one being inactive? Like for instance the DVD/CD-ROM drives?

brandon.barrick
brandon.barrick

First off, awesome post and I think this will finally fix my parents' phantom HP Photosmart Printer (there were at least 25 different, unused devices that were listed for one printer). Secondly, I love that the list of USB devices contains the Mattel Barbie Girl USB Device. I hadn't heard of it before, but Google showed me that it is actually a really cool toy for the tech-savvy girl. I'm glad to know that Greg is teaching his girls to use the computer too =).

outta_here
outta_here

Leaving the nonpresent devices displayed may really confuse the end user if you did this on a client's PC. An easier way to accomplish this is to drop to a command prompt (RUN CMD), then enter "SET DEVMGR_SHOW_NONPRESENT_DEVICES=1", then "START DEVMGMT.MSC". A side benefit of doing it this way is that the change of showing the nonpresent devices only applies to the Device Manager this one time.

stnoblex1
stnoblex1

I used your instructions to get rid of old device drivers in Windows XP and deleted some of those that were greyed out. Several of the greyed out drivers were still active and I found that I had to re-install those drivers, since they were stilll active.

samyias
samyias

I've managed to use this same function in Windows XP SP3 (might work in other service packs). A good tip.

NoSpam
NoSpam

This is the same command that worked in XP. This is not new for Vista, although Vista tends to need it more! :)

The Scummy One
The Scummy One

get rid of Vista :D Seriously, there are still driver issues with Vista, such as Printers and the like. Once upon a time they worked, however now they dont ?:| And it's not just old stuff, but newer more expensive stuff as well. In some cases downloading the driver fixes it, in other cases it does not. In some cases, even though there are Vista drivers for the device, they do not work. So it seems that Vista is the problem, get rid of Vista

mhaymore
mhaymore

To make things easier, I just have a batch file with the following commands in them: set DEVMGR_SHOW_NONPRESENT_DEVICES=1 start devmgmt.msc Run the batch file, and you are all set. This is especially helpful when imaging machines, or virtualizing hardware.

Mark W. Kaelin
Mark W. Kaelin

Have you encountered problems with drivers in Windows Vista? Will you use Device Manager?s non-present devices mode?

brent.young
brent.young

that won't show you non present devices. you still need the environ var.

bill
bill

I run PC Tools Reg Mechanic on a weekly basis, it never found any of these entries. I had numerous duplicate entries for usb devices and old printers that I had uninstalled.

danmarple
danmarple

Be careful not to remove a device driver just because it is greyed out. If a device is turned off, it's driver will be greyed out. Thus a scanner, printer, camera interface, etc. may have a special driver but it will show as 'non-present' if the device is off or not attached. Delete only duplicate drivers or drivers whose devices will never be attached again.

Galdekot
Galdekot

I followed the same steps in XP sp2 and obtained the same results.

DoubleJava
DoubleJava

These, "The sky is falling!" posts really don't help anyone. I've been running Vista on three personal machines since launch, and have also managed many Vista machines in several customers' environments, and I've run into very few unsolvable problems. In fact, Vista is no worse than XP was when XP was the new kid on the block. I'd be willing to bet that if Microsoft hadn't released a new O/S since XP, then people would still be lamenting how much better Windows 2000 was. I'm not saying that Vista is perfect, but, really, it's no worse than XP. Yes, XP has some advantages to Vista in a few areas; however, Vista has advantages to XP in other areas. On the whole, I'd say Vista is slightly better than XP. If that doesn't hold true for you, then you should probably keep running XP, but that doesn't mean that everyone else should do the same. As another poster mentioned, the biggest problem with any MS O/S is hardware that comes with poorly written drivers. These drivers are written by the hardware vendors and are the hardware vendors' responsibility, but MS ends up getting the blame because most users don't know who to blame. I'm glad that MS made the decision to only support signed drivers in Vista 64-bit and Windows 2008 64-bit. My 64-bit Vista machine has been perfectly stable for two years now. One of my 32-bit Vista machines, which has nearly the same hardware/software configuration as my 64-bit machine, has had to be rebuilt twice over the same amount of time. In both instances, that machine had to be rebuilt because of faulty hardware drivers. And, no, this situation is not unique to Vista...I've had bad hardware drivers kill plenty of XP and 2000 and '98 machines in the past. I wish MS would have required driver signing with the 32-bit versions of Vista as well. However, I understand why they didn't...they knew that hardware compatibility would suffer in the short term. But, since 64-bit is the future, over time, we will be able to have our cake and eat it too.

bnordberg
bnordberg

I really do not understand how printer drivers not being available is Vista's problem. What about the vendor that made the printer? You're letting them off scott free! Complain to HP, Epson ... stop buying their products if they are unwilling to upgrade their drivers. This is like blaming the gun for someone being shot. I have a mac and a Ubuntu box as well. I can rarely use any printers with them - or I have to use a generic emulation driver. And I lose a lot of features. Is that apples fault? I argue it is not. Put some blame where it belongs. Stop letting hardware vendors force you to upgrade.

Thewanderer
Thewanderer

Scummy, if you are having issues with any peripheral device drivers (especially USB) check registry entries under HKEYLOCAL..Currentcontrolset->...USB Enum, and remove any PID entries that contain the serial number for the device you're attempting to reinstall. Don't wish away Vista just yet, Win-7 is likely to have similar issues. Also check out the Win-7 UAC 'feature' posted in a recently posted TR article!!

pgit
pgit

Isn't this going to be the same potential problem in windows 7? Getting rid of vista is always a good idea in my book, but impractical, to say the least. I appreciate this info, thanks again to TR and the good folks gathered around that flag. BTW I have had bad driver problems with vista. I've mentioned before one client obtained a single vista machine out of 11 on a LAN, which promptly burned up the network printer. (an HP laser served off one of the XP machines) We confirmed with HP the vista driver over polled and in an incompatible way, it literally fried a circuit, smoke and all. HP told us "don't print from that machine." Wow, every single task on these computers ends with a print off. We found an antique HP inkjet and put it on the vista box locally. Apparently (according to HP) the driver problem is specific to network printing. (ipp) It's been almost 2 years and I haven't seen an updated driver for vista and the printer model it burned up...

SimiSimi
SimiSimi

Instead of Modifing sys props just make a quick bat file to run on a PC. @echo Set devmgr_show_nonpresent_devices=1 devmgmt.msc

pdr5407
pdr5407

There were lots of non-working drivers, especially under the HID-USB list that I removed. So far, my computer is working ok after uninstalling them. Will this help to speed up Vista?

elias
elias

I have enabled the 'non present devices view' and it surprises me to see that there are a lot of devices that appear twice, once as "present" and once as "non present". As far as I can see, these are in both cases the same device. Is there any way to verify if they are really the same device ? Does this indicate some kind of general problem ? Can I safely remove all the "non present" ?

pianoguy
pianoguy

Okay, perhaps I'm missing the point, but I've always opened Device Manger, and in View selected "Show Hidden Devices" (i.e. ones that aren't connnected anymore). Then you can disable/uninstall the related drivers. Right, folks?

ChrisEvans
ChrisEvans

Finally some sense in the Vista debate - thank you for cutting through the rubbish to the point.

pgit
pgit

It was incidental that the problem arose when the vista machine arrived. We reamed HP and all they came up with was "don't print with vista." The model was apparently old enough they weren't interested in straightening out the drivers. BTW someone gave me a Canon all-in-one unit, a Pixma MP780. She said it wasn't working completely. (she uses windows) For the heck of it I plugged it into my Mandriva Linux box... and everything worked out of the box. Scan, print, copy, fax... all of it. I didn't have to do anything other than plug it in. (Mandriva 2008.1, the BEST distro ever, with 2009.1 beta looking real good...) If you want Linux compatibility I recommend this unit. Not sure if it's a current item, but I'd guess it's latest iteration would work as well.

Ron_007
Ron_007

please do a public service and post the specific printer name and model and driver version

danmarple
danmarple

This usually occurs when a device is removed from one USB port and later plugged into a different port. Vista (and XP) think that it is a different device, thus installing duplicate drivers. It has never been a problem for me to delete the unused duplicate driver.

DWalker88001
DWalker88001

No. If "Devmgr_Show_Nonpresent_Devices" is not set, then the non-present devices are not shown, EVEN when you click the "show hidden devices" menu item in Device Manager. I think this is stupid, but apparently "nonpresent" and "hidden" are two different things. NOTE: I think it's easier to set the following registry key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] "DEVMGR_SHOW_NONPRESENT_DEVICES"="1" Then log off and on (or reboot), and you don't have to set the environment variable; you can check the "Show Hidden Devices" menu item and see all of the nonpresent devices. I have this registry file stored on my USB flash drive on my keychain, and I always merge it on anyone's computer I am fiddling with.

pgit
pgit

The printer was an HP laserjet 1320, the driver is long gone, don't know the version. The drivers for the replacement HP 2015 work fine.

Editor's Picks