Many a times after a failover occurs on a clustered print server, a chill runs down the IT Administrator's spine when he notices that there are print queues missing. Today we will discuss a few basic things to check. Before doing ANYTHING however, get a backup of the print servers using the Print Migrator tool before making any modifications to either server.
OK, so before we get too deep into the post, let's quickly outline the most likely reasons for missing print queues:
- Missing Print Processor DLLs
- Missing Print Processor Registry Entries
- Missing Print Monitor Registry entries
- Corrupt/Missing Driver Files
- Quorum Log Size
The first thing to do is to see if there are any common traits that are shared by the missing print queues - for example:
- Do they use the same Printer Driver?
- Do they use the same Print Processor?
- Do they rely on a specific Port Monitor?
If you are able to fail the resources back to the working node, you can look this up via the GUI. Alternatively you can find the same information via the registry. More often than not, you can isolate the problem based on one of the three scenarios above. So let's look at these in more detail.
When dealing with Missing Print Processor Registry Entries / Missing Print Processor DLL's, the first thing to do is find out what exactly is missing. The following registry key contains the list of all of the clustered print queues that are installed - so you should be able to tell which queues are missing on the problem node: HKLM\Cluster\Resources\<Resource GUID>\Parameters\Printers. Once you locate one of the problem queues, look for a value named “Print Processor” which will tell you the name of the Print processor in use. You can also find the driver being used by the printer in the “Printer Driver” value data. Now take a look at the other queues that are problematic - do they use the same print processor or driver? If they do, look inside the following registry key (for an x86 based print driver): HKLM\Cluster\Resources\< GUID>\Parameters\Environments\Windows NT x86\Print Processors. Is the Printer Processor listed here? If not then we are either missing the print processor registry entry or we have an invalid print processor set.
If you have several OEM print processors that seem to have issues, you can force all the print queues to use the default Print Processor, WinPrint. You can either set it from the printer properties or you can use WMIC or the SetPrinter utility. The WMIC command is as follows on Windows Server 2003: wmic printer set PrintProcessor = WinPrint . You can also use the setprinter.exe Resource Kit utility to set the printer processor to Winprint using the following command: SetPrinter.exe \\Servername 2 PrintProcessor="Winprint".
- Windows 2003 Print Clusters - Part One
- Windows 2003 Print Clusters - Part Two
- KB278455: How to set up a clustered print server
- KB257897: MSCS printer shares may not come online if quorum log is too small