Often home users connecting to a remote computer would like to print to their local printer. It is possible, at least sometimes, depending on the printer. The basic idea is that the host computer needs a driver for the guest computer’s printer, then it needs to be able to map that driver to the printer when the terminal services session is established.
When the remote user’s printer is an HP-Postscript enabled LaserJet HP2605dn, I have had some success installing the HP Universal Print Driver – Postscript and using the printer mapping described in MSKB 239088 and near the end of this article: Windows Terminal Services Printing. And yes, this applies not only to servers running Terminal Services (aka Remote Desktop Services), but also to individual desktop computers that allow remote users to connect via Remote Desktop.
I’ve tested the following on host computers running Windows XP SP3 and Windows 7.
First, install the universal print driver on the host computer. During installation, choose the mode that allows specifying the printer dynamically.
Second, create c:\windows\inf\ntprint_desktop01.inf
with the following contents:
[Version]
Signature="$CHICAGO$"
[Printers]
"HP Color LaserJet 2605/2605dn/2605dtn PS" = "HP Universal Printing PS"
Third, create two registry values under this key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd
Name: PrinterMappingINFName
Type: REG_SZ
Data: c:\windows\inf\ntprint_desktop01.inf
Name: PrinterMappingINFSection
Type: REG_SZ
Data: Printers
That’s it! The 2605dn will now connect to the universal driver. Tip: if the mapping fails, check the event log for the exact name of the printer that is “missing” a driver. Then use that name in the .inf file above. Note that HP also offers a Universal PCL driver if the printer does not support Postscript.