Print servers are something almost every company uses, but not everyone sets up in the optimum way. Over a long time working with printers and servers, I've come up with a set of best practices that work well for setting up and supporting Windows printers and print servers.
Although we're talking about best practices here, things like printer pooling, group-based printer assignment and print clusters are outside the scope of this article. If your company is big enough to need a print cluster, I figure you already know how to properly setup a print server.
Printers
Although the article is about print servers, printer setup is as important as server configuration. Always use TCP/IP for printing. Other protocols like DLC/LLC and IPX/SPX are available, but they can make it difficult to manage printers and cause problems printing across VLANs and VPN. Assign all printers a static (or reserved) IP address and group them at the end of the subnet to keep things organized. For a class C subnet, I generally assign printer IP addresses in the .240 to .254 range.
After plugging most HP printers into the network (and the wall!), holding down the Go or main button will print a configuration sheet with its IP and MAC addresses. Assign a static IP by opening the printer's web configuration server at http://ipaddress or through the printer display if it has one.
After assigning an IP address to the printer, physically label it with a label maker, piece of paper, post it note, stone tablet, spray paint or whatever else is handy. Include the printer's name, IP address and print server. This is as much for the technician's benefit as it is for the end user. Also, record the name, model, IP, location and print server in a spreadsheet. Someone is going to have to support these printers down the road, so make it as easy on them and document the configuration. I think every minute spent on documentation saves ten minutes of running around in the future.
Print Server
Setup all Windows users to print through queues on the server. Allowing users to print directly to an IP printer means all the desktops must be updated when the printer's IP address or VLAN changes. What's worse is that it's extremely difficult to find out which desktops need to be updated. In addition, anyone using a server queue automatically gets a new print driver when the server's driver is updated.
After plugging the printer in and assigning it an IP address, create a print new queue by clicking Start -> Printers and then clicking Add New Printer. In the first step of the wizard, click Local Printer and uncheck Automatically detect my Plug and Play printer.
Next, create a new Standard TCP/IP Port and click next. Type the printer's IP address in the Printer Name or IP address field and the Port Name field will fill in automatically. Click Next and then Finish.
The next step is to assign the printer a driver, and I generally use the newest PCL driver. My experience has been that Postscript drivers often result in printing problems or missing printer features. If a Postscript driver is required for a specific application or UNIX client, create a second print queue and point it to the same TCP/IP port created above.
The next two steps are to assign the printer a display name and a share name. I recommend either keeping these the same, or making sure the share name is part of the printer display name. If there are four HP 2500 printers on the network and they're named HP 2500 (1), HP 2500 (2), and so on, they're going to be tough to track. I like to use a location-model naming scheme. If the human resources department has an HP 2500, I'd name it HR-HP2500.
Make sure to fill out the location field, as this text is available by default in Windows Explorer's details view, and it helps differentiate the same printer models.
Click Next and then Finish. Make sure to print a test page before adding the queue to client PCs.
I've found that when people have a color printer available to them, they will happily print thousands of unnecessary color pages rather than switch the default print setting to grayscale. Color toner is expensive, so it's costly and wasteful to print everything in color. When setting up a color printer, create two queues: One with grayscale set as the default and the other with color as the default. Make the grayscale print queue the default printer on end user desktops and explain how to print to the color queue when color printing is needed.
Finally, make sure to leave a LOT of free space (at least 8 GB) on your print server's C:\ drive for spool files. PowerPoint and PDF documents create print spool files so large that they can fill your server's C:\ drive, crashing the print spooler service and sometimes the server itself. It's also possible to move the spooler directory to another drive by going to the print server's Printers folder and clicking File -> ServerProperties and then the Advanced tab.
Troubleshooting
I like to standardize on one or two printer brands. Installing drivers from every vendor under the sun invites print server instability. It's also easier to service printer hardware when there are a smaller variety of brands and models.
Do not install a print driver on your server that includes a print monitor application. Print monitor applications tend to be bloated, useless and unstable, and I've seen apps from the same vendor fight with one another on who gets to crash the server. Desktop printers are for desktop PCs. Printers with network ports are generally more robust, designed for network use, have much less expensive toner and better drivers.
I don't generally upgrade print drivers unless there is a specific reason to do so. A nice stable print server is pretty easy to turn into a mess where people can't print and the spooler service needs restarting every day. It's also extremely difficult to track down the specific driver that's causing the problem. If it ain't broke, don't fix it.
Print spooler service crashes - Sometimes the spooler service will stop for no apparent reason. It's supposed to restart when it breaks, but this doesn't always happen. Open services.msc for the server and stop and start the Print Spooler service. If that doesn't work, reboot. Consider scheduling a spooler service restart every day/week as needed.
Consistent print spooler service crashes
Bad print driver. Update print drivers and disconnect or uninstall desktop printer or print monitors running on the server. Use PCL instead of PS, or vice-versa.
Full spool directory. See above about full drives and the spool directory.
Server Blue Screen of Death - This is almost certainly due to a bad driver. Update drivers, use PCL instead of PS, go back to an older driver or start disabling print queues until you find the culprit.
Missing end-user features like a duplexer or extra tray - Sometimes specific features need to be selected in the print server's driver. Other times the queue might need a newer driver or a swap from PS to PCL or vice-versa. Some printers have optional accessories that you didn't buy. Make sure the printer actually has the duplexer or extra tray installed.