I had an issue connecting an HP Laserjet 4050 parallel printer (connected with a USB adapter to a 64-bit Windows 7 laptop) to a terminal server running 32-bit Server 2003 R2. It worked fine when the user was running Windows XP, but after upgrading to a new computer, it no longer showed up on the terminal server.
The problem is that Windows must have a driver on the terminal server with the exact same name as the driver on the local computer. In this case, Windows automatically installed the "HP Laserjet 4050 PCL 5" driver, but the server only had drivers for the "HP Laserjet 4050 PCL5E" and "HP Laserjet 4050 PCL6" printers.
Windows 7 also comes with a PCL6 driver for this printer, so I went into the properties for this printer (Control Panel, Printers, right click the printer and go to Printer Properties, Advanced tab, New Driver). I selected the PCL6 version of the driver. However, when I clicked OK, it told me that a driver needed to be installed. Strange, as I was just using the driver that came with Windows.
It turns out there is a bug in the Microsoft drivers for this printer. Here is the fix for that (copied from here):
As was mentioned above:
On your Windows 2008 server, open the registry editor and change the HPTrayCount:
Set HPTray to 12 (hex, it'll show 18 in decimal).
if you have 50 printers, you may have to do it 50 times. On my server
some said 0, and others were still set to 12. I'm not sure why some
changed and some did not. The ones the still had 12 were not displaying
After I got that working, she was able to see the printer on the terminal server, but not in Quickbooks. It turns out that Quickbooks has another bug that won't allow you to see printers whose names contain too many characters. I logged her out of the terminal server, renamed the printer to "Laserjet4050," logged her back into the terminal server, and she was able to print in Quickbooks!