Print Spooler Crashing

Currently we five (5) MS Windows 2000 servers with Citrix Metaframe XPa installed on them. The problem we are having is our print spooler keeps crashing.

When users login via Citrix ICA client (just like TS) the Citrix Management Consol maps the users default printer and creates a virtual printer under Windows 2000 server with the driver for that printer. But when the user logs out of Citrix the printer is suppose to disappear as well; however, sometimes this doesn’t happen. The user will log out but the printer stays behind. So when the user goes to login next time it can’t map their default printer because it is already there. This causes the print spooler to crash.

Even If I reboot the server those printers won’t disappear, I have to literally go into printers and faxes and delete each of them and reboot again. Why is this occurring and how can I stop it?

Note: We have standardized our printers to HP 2100, 2200 and 2300 LaserJets and these drivers are installed on the server as well so it can map the proper driver with the proper virtual printer.

Who is Participating?
SelectEffectsConnect With a Mentor Commented:
Because it's difficult to diagnose a problem without being at the server, I'm going to give you some recommendations that will hopefully work or put you in the right direction. First a couple of questions--

Did you upgrade the servers to Windows 2000 SP4? What about the workstations? What errors are you getting in event viewer? You may need to expand the virtual memory paging file on the servers and also check the event viewer for errors. We ran into several issues after upgrading to SP4 with the print spoolers also crashing so you may be having a similar problem.

Here's some info I found on that:
If you configure the network printer port to use the RAW data type and you print multiple copies of the file, the spooler might choke and automatically restart. When this happens, you’ll see entries in the System event log with event ID 7031 and a message stating “The Print Spooler service terminated unexpectedly. According to the Microsoft article "Spooler Service Quits When You Submit a Print Job and an Event ID 7031 Message Is Logged in the System Log" (, the bug is a result of a coding error that occurs when the spooler service needs to allocate a larger buffer; instead of increasing the buffer size appropriately, the code resets the buffer size to zero. The fix consists of three files, localspl.dll, spoolss.dll, and win32spl.dll. You can get the update only from PSS. This is one of the 46 pre-SP5 bug fixes, and you can install it only on SP3 systems.

Apparently there is an issue related to Microsoft Windows 2000 Service Pack 4 and the Citrix ctxnotif.dll. During the logoff process, the ctxnotif.dll deletes the printers. The process hangs and only has time to delete the printer if at all before the winlogon closes all running processes and logs you off. Are the users properly logging off?

You may see about rolling back to SP3, or contacting Microsoft for the bug fix. In the mean time you may also try running this script found at may help to make the logoff more smooth.                  

Also do the printers map properly and not crash when just connecting directly through a remote desktop session or are there problems there?
You may also try moving the default locations for the paging and spooler files in case there is a space issue causing the problem.
Here's a link with info on that:
However, if you're on SP3, you may try applying or reapplying feature release 3/Service Pack 3 from Citrix to help with a fix.  
There's an update from Citrix that may help you depending on your version of metaframe after reapplying your service release.
It was just released earlier this month.

Here’s a link.

Ok I hope this helps, if you have any more questions I'll try my best to assist you.

Good Luck!
Select Effects
I'm not sure what's causing the actual problem, but you can try deleting the printer from the command line in a batch file that is called either when the user logs out or before the new printer is created. explains this in more detail, but what you basically need to do is:

rundll32 printui.dll,PrintUIEntry /dl /b "<printer>"
No comment has been added to this question in more than 21 days, so it is now classified as abandoned..
I will leave a recommendation in the Cleanup topic area that this question is:
Accept SelectEffects
Any objections should be posted here in the next 4 days. After that time, the question will be closed.


EE Cleanup Volunteer
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.