Specific Tasks

Adding a network printer for all users

Printing from DOS

Install Additional Driver on older OS

When installing Additional Drivers doesn't work

How to clean up printer drivers

Add Printer or New Hardware Found fails

Printing to a Print Server Device

Printer Scripts


Frequently Asked Questions

General Info

FAX

Printing

Glossary

Home

Links

Bruce's General Windows Pages

 

 

 

Bruce Sanderson's Windows Web

How to clean up printer drivers

If the Print Spooler service fails when printing, when Windows starts or it can not be restarted, the usual reason is that one or more printer drivers is defective.  If the Print Spooler service is not running, the Printers and Faxes folder will be empty and you can not use it to remove (or add) printers or printer drivers.  If you have a Lexmark printer, see special information about Lexmark printer drivers.

It's important to only install printer drivers that are designed and built specifically for the Windows version you have.  This is particularly important for Windows XP; many of the CDs and floppy disks distributed with printers (particularly older models) do not have Windows XP drivers - check the printer manufacturer's web site for printer drivers for the version of Windows you have (see Links).

A common cause of printer driver problems is to upgrade to Windows XP from Windows 95, 98 or ME without first removing the printer and the printer drivers.

The steps on this page will remove all printers and printer drivers from the computer.  The printing subsystem is then "clean" and ready for printers to be added using printer drivers specifically for the Windows version you have

If you have drivers for several printer models installed (e.g. on a Print Server computer) it may only be necessary to remove the defective printer drivers.  At steps 2, and 7, just delete the entries for the printers or printer drivers you suspect are defective.  Unfortunately, the files that comprise the drivers are all in the same folder.  Also, the same files may be used by the drivers for several printer models.  So, selectively deleting the driver files at step 12 may be difficult or impossible.  With Windows 2000 and XP, in most cases, deleting the registry entries for the drivers (step 7) will be sufficient, so you may want to skip steps 10 through 12 if you have multiple printer models and don't want to re-install all of them.

Check in Control Panel, Add/Remove Programs; if there is an entry relating to one of the printers, select it, then click Change/Remove.  Follow the dialog and "uninstall all" or "remove all" as appropriate.  Some "printer software" have programs that show up here and it will be a good idea to remove those before going any further. 

If the Print Spooler service is operational:

  1. Open the Printers (Printers and Faxes on Windows XP) folder

  2. delete all of the printers

  3. click File, Server Properties

  4. select the Drivers tab

  5. for each entry:

    1. select the entry

    2. click Remove

Usually, this will do a pretty good job of cleaning out drivers with Windows 2000 and later (not so with Windows NT 4). 

 

If the Print Spooler service is not operational, or you want to make certain there are no printer driver remnants, either follow the instructions below or use cleanspl.exe from the Windows 2000, XP or 2003 Resource Kit (http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en).  cleanspl.exe from the Windows 2003 Resource Kit tools will work on Windows XP. 

Some information about cleanspl.exe:

  • cleanspl.exe does a very thorough job of cleaning up the print spooler stuff, but it does not remove the spooler service dependency on the Lexmark service (see special information about Lexmark printer drivers). 

  • You can use it to clean up the spooler stuff on another computer (i.e. remotely). 

  • When you run it, it asks you if you want to remove some things that are actually delivered (and installed by default) with Windows.  In most cases, you should answer No to the corresponding prompts (you don't want to remove the Standard TCP/IP Port or the BJ Language Monitor).

Here's how to clean up the print spooler stuff if cleanspl.exe is not available or you prefer to do things manually.

 

Warning! be very careful using regedit - if you delete the wrong things, you may render your computer inoperative!

  1. open regedit (e.g. click Start, key regedit and press Enter)

  2. navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers

under this key, there will be the keys Version-2 and Version-3 (one or the other of these may be absent - not a problem)

    the sub-keys under these contain the printer driver configuration information

delete all the sub-keys inside Version-2 and Version-3, but not these keys themselves

The Microsoft Knowledgebase article at http://support.microsoft.com/default.aspx?scid=kb;en-us;312052 lists some other registry entries to delete, but this is not usually necessary.

  1. open a Command Prompt window

  2. key the commands
           net stop spooler
           net start spooler

  3. open Windows Explorer

  4. navigate to %systemroot%\system32\spool\printers\ and delete any files there.  By default, this is where the print spooler stores print files.

  5. navigate to %systemroot%\system32\spool\drivers\w32x86 (%systemroot% is usually Windows, but it might be winnt or something else; this is set when the OS is installed).

  6. inside w32x86, there will be folders with the names 2 and 3 (one or more of these may be absent - not a problem)
           delete all of the files and sub-folders in each of the 2 and 3 folders, but not the folders themselves
         inside w32x86, there may be other folders with names starting with "hewlett_packard", "hphp" or something else; delete these folders also

  7. restart the print spooler (see steps 8 and 9 above)

At this point, the system should be pretty well back to the way it was before any printers were installed.

Some would suggest restarting Windows at this point, but with Windows 2000 and later, this does not seem to be required.

If you have a Lexmark printer, these additional steps may be necessary (thanks to Robert Orleth [MSFT] for providing this information).  The Lexmark printer installation process sometimes installs a service that makes the print spooler service dependent on itself.  If there is a problem with Lexmark service or a Lexmark printer driver (or you removed it using the steps above), the print spooler service may not start (see also http://support.microsoft.com/default.aspx?scid=kb;en-us;324757).  The steps below make the print spooler service only dependent on the Remote Procedure Call (RPC) service (RPCSS), which is normal.  The print spooler service dependencies are stored in the registry at

     HKEY_LOCAL_MACINE\SYSTEM\CurrentControlSet\Services\Spooler\DependOnService

The sc config command at step 16 resets the value of that entry.

  1. Open a Command Prompt window

  2. key the command
           sc config spooler depend= RPCSS
       
    (note the space after the = but not before)

  3. restart the print spooler (see steps 8 and 9 above)


Last Updated 30 Dec 2004

Hit Counter