We recently ran into an issue printing to Brother MFC 420 USB printers from a Windows XP computer connected via Remote Desktop to a Vista Ultimate computer. The printer is local to the Windows XP computer and the requirement is that the use should be able to print to this Brother printer from a Remote Desktop session on the Vista computer. Unfortunately, the printer redirection does not work and the reason for it is the printer driver name used by Windows XP for the Brother MFC 420 USB printer is different from the Vista printer driver naming convention. In order for printer redirection to work, the printer drivers (not the printer names) have to match.
To fix this, I followed Microsoft’s documentation on editing the registry and creating a new INF file that contains the one-to-one printer redirection mapping. Here is the url to the documentation //technet.microsoft.com/en-us/library/cc775141.aspx and I have stripped out the section I used before the url becomes stale:
- 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.
Type: String (REG_SZ)
Value data: Name of the section in the .inf file to which you want to redirect lookups.
After you add the new registry values, create or modify the .inf file that you specified in the PrinterMappingINFName registry entry to include the user-defined mappings from the client-side to server-side drivers. Follow the format used in the following example:
;Printer mapping file for client-side to server-side drivers
"OEM Printer Driver Name" = "Windows Server 2008 Driver Name"
"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-side print queue that is being redirected to the server. The exact name of the printer driver appears on the General tab, next to Model when you view the printer properties on the client computer. (You can also click the Advanced tab and view the driver name in the Driver list.) The right side of the equation is the exact name of the server-side driver equivalent that is installed on the terminal server.
Hope this helps you out if you ever find yourself in this situation.