We've got a terminal server that locks up frequently (well, explorer hangs, not a complete freeze; we can 'fix' it by restarting the print spooler service) due to a bad printer driver.

The event log doesn't seem to contain any useful information. Is there any easy way to identify the problem driver without uninstalling the lot and re-adding them one by one (there are a lot of drivers installed and as the problem is intermittent this would take forever).

4 Answers 4


I had this issue a while back with a terminal server. We found the cause to be a Nortel scanning/printing driver that had been installed on the server with VoIP software. The easiest way is to go and find all the installed drivers on the server. Go to Printers and Faxes, right click, server properties. Go to drivers tab, and verify each one is compatible with your OS version. Remember PCL5e over 6, and keep user drivers off of the server!

Also give this a shot...Print Stress test from Citrix http://support.citrix.com/article/CTX109374

  • Why PCL5e over 6? I run PCL 6 for a HP ColorLaserJet and haven't had any issues. Should I change this driver?
    – Matt
    Jun 10, 2009 at 14:46
  • 1
    Typically a PCL5 driver will be more stable and tested than a PCL6 driver.
    – XTZ
    Jun 10, 2009 at 19:16

We had this a while ago with a number of clients, unfortunatly we did not find an easy way of determining the problem printer. So it was on a one printer at a time basis that we found the fix.

What models of printer are you working with? mostly the same or a mixture? my first recommendation would be to check the inkjet or multifunction type printers first as their drivers tend to be bloated and often causes problems on terminal servers.



Unfortunately, there isn't an easy way to tell which driver it is that's causing your spooler go nuts.

splattne mentions looking for an errant svchost.exe. The print spooler is spoolsv.exe, though. If you see spoolsv.exe sitting around consuming 100% CPU, then you probably have a printer driver going nuts.

You might get lucky, using Process Explorer and the "Threads" tab, catching it "in the act" and seeing what DLL the threads consuming the majority of CPU are running in. That's worth giving a shot, assuming you can "catch it in the act".

To minimize the effort, though, instead of testing them "one by one", you might do a binary search-- remove half of them and see if the problem goes away. If it doesn't, remove half of the remaining half, and so on, until you find the offending driver.

  • i think even a binary search is going to take too long. but i like the processs explorer idea. i'll give it a shot. cheers.
    – bugs
    Jun 10, 2009 at 9:57
  • Sorry, many services are hosted by svchost, I forgot that the printer spooler isn't one of them. I corrected my answer. Thank you!
    – splattne
    Jun 10, 2009 at 10:15

It sounds like the Windows printer spooler service uses 100% of the CPU. Verify this, searching for a spoolsv.exe process and see if the process utilizes a high percentage of CPU time.

If you can confirm that is one of the printer drivers creating the problem, I would try to update every printer driver to the last version.

  • svchost is nothing to do with with the printer spooler...
    – bugs
    Jun 10, 2009 at 9:50
  • I edited my answer. Sorry, many services are hosted by svchost.exe, I forgot that the printer spooler isn't one of them. Thanks!
    – splattne
    Jun 10, 2009 at 10:16
  • there's only one spooler process though!
    – bugs
    Jun 10, 2009 at 10:19
  • sure you're right, since it's not hosted by svchost, there is no necessity of using tasklist /svc.
    – splattne
    Jun 10, 2009 at 10:22

You must log in to answer this question.