Now and then I spend some time on Microsoft’s Social TechNet forums at http://social.technet.microsoft.com/Forums. In particular the Remote Desktop Service (Terminal Services) forum. It´s interesting to see and read about what issues other people encounter when using RDS (formally TS). The amount of threads about printing would probably end up the top 5 so I thought I’d devote a blog on it. Nothing new though, just a thought, a little history and some personal experience. Ever since the concept of Terminal Services one of the major issues has always been dealing with Printing Services. Back in the old days (Windows Server 2003 pre-SP1 timeframe), when you wanted your users to able to redirect their local printers, you had to install the appropriate drivers on (all) of the terminal servers in your farm. I think every administrator was really annoyed by that and had a hard time explaining to their customers what they had to do to make their printers even show up. Besides installing the drivers you sometimes had a hard time of even finding the appropriate drivers that were compatible with Windows Server 2003. (Especially with the x64 version!) And installing all kinds of drivers (and maintaining them regularly) didn’t make the Terminal Servers more reliable.
Along came software by 3rd party vendors that were able to redirect the printers without the need of installing the drivers (i.e. Tricerat ScrewDrivers). This software however required you to get a license per Terminal Server and wasn’t stable enough either.
Along with SP1 for Windows Server 2003 came Fallback Printer Driver functionality. The idea behind this was that when a user connected to a Terminal Server with a printer that the Terminal Server didn’t have a driver for a fallback printerdriver was used. The idea was good, and in basic it worked, but of course this wasn’t a full proof solution. An end-user expects that after he presses Print of CTRL-P a printerdialog pops up that shows the printer the user wants to use with all its features. (like different trays etc.) So this solution was in fact what it was called, a fall back. With Windows Server 2008 along came Terminal Services Easy Print. I don’t think they could have chosen a more appropriate name. A blessing for all Terminal Server (remote desktop) Administrators!
“…The Terminal Services Easy Print driver is a feature in Windows Server 2008 that enables users to reliably print from a Terminal Services RemoteApp™ program or from a terminal server desktop session to the correct printer on their client computer. It also enables users to have a much more consistent printing experience between local and remote sessions…”
For TS Easy Print to successfully work there were three basic requirements that you would have to meet. You would have to use at least version 6.1 of the Remote Desktop Client, the client needs .NET Framework 3.0 SP1, and a Group Policy Object (GPO) would have to be in place to actually enable TS Easy Print. But no doubt this was a huge improvement compared to installing printerdrivers and / or using Fall Back Printer drivers. (Although the GPO setting is still there, The Fall Back Printer functionality is even no longer available in Windows Server 2008).
The release of Windows Server 2008 R2 and Windows 7 makes the life of the RDS Administrator complete! As Easy Print is now no longer dependent .NET Framework! A very common request from customers that didn’t want to install .NET on all clients from which they wanted to print. The XPS format to GDI conversion that was done via .NET Framework before this conversion is now handled by Win2008/Win7.
So nowadays when you want to configure printer redirection in a RDS environment, use the combination Win2008R2 and Win7, apply the Group Policy below, and you’re done!!
- Use Terminal Services Easy Print printer driver first
This policy setting is located in the following node of the Local Group Policy Editor:
Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection
The possible values are:
· Enabled or Not configured: If this policy setting is enabled or not configured, the terminal server will first try to use the Terminal Services Easy Print driver to install all client printers. If for any reason the Terminal Services Easy Print driver cannot be used, a printer driver on the terminal server that matches the client printer will be used. If the terminal server does not have a printer driver that matches the client printer, the client printer will not be available for the Terminal Services session. By default, this policy setting is not configured.
· Disabled: If you disable this policy setting, the terminal server will try to find a suitable printer driver to install the client printer. If the terminal server does not have a printer driver that matches the client printer, the server will try to use the Terminal Services Easy Print driver to install the client printer. If for any reason the Terminal Services Easy Print driver cannot be used, the client printer will not be available for the Terminal Services session.
And to finish it off, here are some related recommended hotfixes:
946411 - FIX: When you print an XPS file on a Windows XP Service Pack 2 or Service Pack 3-based computer, the characters in the XPS file print incorrectly 954744 - FIX: Some pages are printed in the incorrect orientation when you use Terminal Services Easy Print to print a document that contains both portrait-oriented pages and landscape-oriented pages 954743 - FIX: After you apply hotfix 954744, printing performance may be significantly slower when you print documents by using Terminal Services Easy Print