How to eliminate print popup messages and print notifications in event viewer from coming up and fix hung spooler problems for good.

One of the most annoying things about Windows NT Server is that out of the box it gives you a print popup message everytime a user prints..sometimes the message goes to everyone connected to the server. The second most annoying thing is by default all print events get logged to the Event log. Here is how to solve both problems. These solutions require editing the registry be sure and do and rdisk /s before doing any registry changes and if you dont know what you are doing in the registry dont mess with it. All disclaimers apply.

If you are registry shy, using WTS and know how to use policies, the WTSADM policy file on thethin.net downloads page has these settings built into it. Check it out on the downloads page.

Another way to turn off these settings if you are using NT 4 or 2000 is by going to the printer control panel and choosing server properties from the first drop down menu and clicking on the advanced tab. Unchecking all the boxes and rebooting your server will clear the event messages.

  1. Run Regedt32.exe
  2. From the Hkey_local_machine subtree go to the following key
  3. System-CurrentControlSet-Control-Print-Providers
  4. From the edit menu click on Add Value
  5. In the value name field type the following this is case sensitive!: NetPopup
  6. Select REG_DWORD for the data type
  7. Click on OK
  8. In the dword editor box type 0 (zero) in the data field
  9. Click OK

Now print Popup notifications will be disabled to re-enable change this value back to 1.

To stop print notifications from being written to the event log perform the above up to step 3.

Click on the value that says Eventlog in the right window. It should already be there but if this value does not exist you will have to create it performing the same steps as in 4-5 above only change the word NetPopup to read Eventlog.

After clicking on Eventlog you will get a dword editor box. Change the value from a 1 to a 0 (zero).
Click on OK
Print events will no longer be written to event log.

You can disable the popup SPOOLSS.exe error you receive on the console at times when the spooler crashes by going to..
hkey local machine\system\currentcontrolset\services\spooler
ErrorControl Key
These are set to a 1 by default which only suppresses errors from system processes. Change it to a 2 to suppress both system errors and Application errors from popping up.

Here is another printing suggestion: Change The Print Spool Directory

By default, Windows NT uses the system disk for all print spooling directories. If you're running out of space or fire off a large number of print jobs, this can soon become a performance bottleneck. You can change the spool directory by adding a new REG_SZ value named HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\[Printe rName]\SpoolDirectory and setting it to a local path. You should replace [PrinterName] with the name you gave the printer when you created it.

Note: You can't use a UNC path for the printer spool. You must use a fully qualified local path that exists before you make the changes. You must stop and restart the Spooler service after making these changes to the Registry.

Here is the url at Microsoft that explains more in depth on how to move the spool directory to another drive

If you need to add Print Screen Functionality back to your Print Screen Key in NT I reccomend you try the freeware utility Print Now. You can download it from here.

Another Freeware program to add Print Screen Functionality back to your Print Screen Key in NT is called Printkey. It has many more robust features than Print now and allows editing of the screen before printing. You can download the latest version from here. You can check out the authors homepage at http://www.geocities.com/~gigaman/.

Sometimes the spooler gets hung, especially on WF/MF Servers you can use the below batch file script I wrote (that I have recently heard CITRIX tech support is reccomending)that reschedules itself to automatically reset the spooler every 2 hours and clear out hung jobs. This prevents a reboot. The 7200 is seconds and is changeable. Also for Terminal Server change the word winframe to wtsrv. Don't worry about lost print jobs...the likelyhood that a job will be running the few seconds that this script takes to run is low. Even if a job or two is lost the user can just resend it and it beats having to reboot and kick off all users because of a hung job. Just run it once or use the autostart.zip file in the tip on how to run a batch file at system startup (/terminal-services/autoexnt.htm)

Note: In order for this batch file to run you will need soon.exe and timeout.exe from the resource kit(put them in your path)and the schedule service must be running.. You can download soon.exe from here with a sample of the batch file.

soon 7200 "%0"
net stop spooler
Timeout.exe 5
echo y | del c:\winframe\system32\spool\printers\*.*
net start spooler

The soon 7200 command schedules the job to run in 7200 seconds(2 hours). Change your timeout as necessary. The %0 reschedules the soon command to run again. The net stop spooler stops the spooler and the next line clears out all the hung print jobs. The timeout.exe file pauses the batch for a second or two so that the spooler has time to stop. Then the net start spooler restarts the spooler.

Disclaimer: This information is supplied as is and is intended for information purposes only. Use this information at your own risk. The internet can often contain false or misleading information. While this is generally not the case with my personal documents I have to put this text here for legal purposes.

Featured Links