Terminal Services 2008 introduced Easy Print, a feature that doesn’t require print drivers for local printers to be installed on the remote terminal server. Instead Server 2008 redirects the default printer from the local machine and utilizes the locally installed driver.
While this works well for a lot of printers, printers that need legacy or specialty drivers (like those handy multi-function printers), may result in print jobs are garbled or use incorrect fonts.
The first troubleshooting step should be to update the the print drivers on the client computer, but if this isn’t possible, the default behavior of Easy Print can be overridden with some registry keys and some GPO settings. Also, in some cases, the correct print driver still produces bad print results so you’ll need to use a different driver.
The following steps will override Easy Print, utilizing a driver installed on the server instead AND force a substitution with a different driver.
First, you’ll want to create a special INF file that lists the printers your want to specify alternate drivers for. You’ll reference this INF file in some new registry entries on the server. Follow the format used in the following example:
;NTPRINTSUBS.INF
;Printer mapping file for client-side to server-side drivers
[Printers]
"OEM Printer Driver Name" = "Windows Server 2008 Driver Name"
For example:
"HP DeskJet 720C Series v10.3" = "HP DeskJet 722C"
The left side of the equation is the exact name of the printer driver associated with the client printer that is being redirected to the server. The right side of the equation is the exact name of the server-side driver that is installed on the terminal server. You’ll have to check your printer driver properties to make sure you have the names right.
Next, you’ll need to add a few registry values to your terminal server.
- Locate the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd registry subkey.
- Add the following values:
Name: PrinterMappingINFName
Type: String (REG_SZ)
Value data: Name of the .inf file to which you want to redirect lookups. (Example - c:\windows\inf\ntprintsubs.inf)Name: PrinterMappingINFSection
Type: String (REG_SZ)
Value data: Name of the section in the .inf file to which you want to redirect lookups. (Example – Printers)
You must restart the Print Spooler service on the terminal server for the changes to take effect. If you need more details about this process, check out Event 1111 – Terminal Services Printer Redirection on TechNet.
Finally, you’ll need to adjust or create a group policy that will alter the behavior of Easy Print for all of your TS users. There are several additional policies that can be enabled to tweak how client machines handle Easy Print. The one you want to adjust “Use Terminal Services Easy Print Print Driver First” and you’ll want to disable it. This will force clients to look for appropriate drivers on the server first and only use Easy Print if no suitable driver is found. It doesn’t disable Easy Print entirely, just makes it the second choice.
Depending on which OS you are using as your GPO management workstation, you’ll have to look in for the policy in one of two places. The discrepancy is related to the renaming of “Terminal Services” to “Remote Desktop Services” with Windows 2008 R2. The registry settings that the policy adjusts are the same.
- For Vista or Server 2008, go to Computer Configuration –> Policies –> Administrative Templates -> Windows Components –> Terminal Services –> Terminal Server –> Printer Redirection.
- On Windows 7 or Server 2008 R2, go to Computer Configuration –> Policies –> Administrative Templates –> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host ->Printer Redirection.
In our case, we were unable to find the setting at all using Windows Vista and we don’t have a Windows 2008 server running GPMC to compare it too. However, we simply made the adjustment using a Windows 7 workstation instead. For other troubleshooting tips with Easy Print, check out the RDS Team Blog.
In my case we needed to disable Easy Print completely. It took me longer than I would like to admit to figure out how to accomplish this but thought it might help to post: Remove the Easy Print driver from the Print Server properties. Warning: I have not tested whether it can be added back.
ReplyDeleteit can be added back
ReplyDeleteThis worked a peach with a Macintosh remote user and his rediculously named PS drivers. Thanks!
ReplyDeleteSafeTinspector, glad it worked for you!
ReplyDeleteThis is a great post and after some testing is apparently still the case with server 2012. Printing over RD services / remote app has been a pain for years. I like your approach with the ini file to map the drivers. -
ReplyDeleteMatthew Hunn
MDH Technologies
http://mdhtech.com
A simple solution that solve allmost printing problems on Terminal Services is TSPrint from a company name www.terminalworks.com
ReplyDeleteYou can download a Trial for 30 days and test.
Much simple to setup and install.
First install server, second install client and simple connect.
Thanks so much! Great product! You saved me hours of troubleshotting. TSPrint rocks!
DeleteWhat an absolute nightmare... what was Microsoft thinking? This shouldn't be rocket science.
ReplyDelete