Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a windows server 2003 with a few printers, and once in a while the Print Spooler service crashes with this message in the event viewer: Faulting application spoolsv.exe, version 5.2.3790.0, faulting module ZSR.DLL, version 6.20.1625.0, fault address 0x0001f979. Obviously it would be nice to prevent this entirely, but until then, I would like it restart automatically. I have set it to "Restart the Service" on the First/Second/Subsequent Failures on the Properties/Recovery tab, but it does not restart. I can manually start it, and then it works fine. How could I set it to restart automatically?

share|improve this question
up vote 3 down vote accepted

You could schedule a task to run at regular intervals

net stop spooler
net start spooler

However the root of the problem coud be a corrupt print driver. Try clearing out all of the print drivers after deleting the printers. Download updated drivers and add the printers again.

share|improve this answer

Problem seems to be with an HP 1020 laser printer, and to me that comes as no surprise. These 1020's really are terrible when used with print servers as they are very budget Windows Host based printers and the drivers written for them by HP are just not up to scratch.

We've tended to stop our employees buying them, instead asking them to go for the bottom of the line HP that has a proper ethernet card in it. The 1020's are ok for use at home, but not in the business enviroment.

You'll find lengthy discussions on spooler crashes, DLL issues, and conflicts with DEP on the web to do with these printers, such as on the HP forum.

But my suggestion would be to save the time on troubleshooting, bin it, and get something decent in.

share|improve this answer
Actually it's a HP LaserJat 1018 :) I cannot replace it at the moment. Thanks for the link. – Balázs Pozsár Jun 24 '09 at 11:57

I would try to clean up the printer driver(s). Try to uninstall the printer driver and reinstall the latest one from the vendor.

A nice page for troubleshouting printer drivers can be found here: How to clean up printer drivers.

share|improve this answer
Thanks for the link, you saved my day! :) Your answer was a solution to my problem, but not my question :) That's why I tagged an other one as accepted. – Balázs Pozsár Jun 24 '09 at 12:07

You can schedule a simple vbs script like this one to restart periodically the Spooler service on the local computer if needed.

strComputer = "." 
strSvcName = "Spooler" 
set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set objService = objWMI.Get("Win32_Service.Name='" & strSvcName & "'")
If objService.State= "Stopped" Then
End If

But this is just a workaround for your problem, you may check all the drivers to see if they are up to date.

share|improve this answer
Net Stop Spooler && Net Start Spooler

Shove that into a scheduled task and run it every few minutes would probably cover you.

Personally I would be looking at which print driver installed the zsr.dll and remove / reinstall it. Chances are its corrupt and needs replacing.

share|improve this answer

You could install a third-party service monitoring tool like Service Hawk to restart it for you. That would do the trick.

share|improve this answer

To add my two cents: zsr.dll is not a Windows dll file so it has to be a printer driver dll (most likely HP). My advice is to update the printer drivers on the server and set the Recovery options on the sevrice to restart the service on failure. IMHO, this is a better option then scheduling a batch file to stop and restart the service on a schedule.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.