Local printer on RDP
Microsoft offers a very cool function for RDP sessions, not limited to Windows Terminal Services on Windows Server, but also works for Windows 7/Vista/8/10 professional.
When you make the connection, if the correct drivers are installed on the server, your local printer (on your client) is made available to your Terminal Services (RDP) session. In many cases, this is done by Windows simply querying your workstation for the correct drivers.
In some cases, however, this does not work, for some reason. In those cases, if you can find the correct driver, install it on your Terminal Server (ie, your Remote Desktop Server). Some printer vendors offer the bare bones drivers, so all you need to do is install them on the server. In other cases, however, you will need to download the installer and unpack it. Many installers are simply compressed archives which unpack themselves into the users Temp directory, then execute the actual install program.
If you're lucky, many printer manufacturers allow you download only the driver itself. Brother and Lexmark are good about this, as are others. Some (especially HP) want to do the whole thing, and add a bunch of bogus utilities to track your usage and try to sell you supplies when your ink/toner is running out. In that case, you have to do some work arounds to actually get to the drivers.
- Download the installer for your printer to your server
- Execute the installer.
- If the installer creates a directory someplace you can easy to get to, you're good. Exit the installer and continue.
- If the installer “cleans up” after you abort the install (especially HP printers), you much hack them
- Open file explorer to c:\users\yourusername\appdata\temp
- Execute the installer again and look for a new directory, usually in c:\users\yourusername\appdata\temp
- Copy the newly created directory someplace, like your Desktop or the Downloads directory
- Exit the installer
- The “server” way of adding printer drivers
- Open a command prompt as an administrator
- Run the command mmc
- File | Add/Remove Snap-in (Ctrl+M)
- Add Print Management
- Add the Local Server
- Open Print Management | Print Servers | server (local) | Drivers
- Action | Add Drivers
- Add the driver
- The “hack” way to do it
- Go to Add a new Printer, wherever it is on your workstation/server
- Set the port to lpt1:
- When you get to the drivers session, select Have Disk, then navigate to the directory you copied above.
- Move through the directory until you find a printer driver file. This will be a file (not directory) which shows up as the files shown are filtered to only show printer drivers.
- Select the file, then click Continue (or whatever the key is)
- Select the printer from the list
- Finish the install
At this point, you have made your Server (I include the Pro workstations, if that is what you're doing) aware of the printer. It has the drivers installed. Now, delete the printer you just created. This will not remove the drivers, just the bogus printer you “installed”.
At this point, on your next RDP session, your local printer should be displayed as an option, generally the default printer, and you can print to this. Remember, you are sending a print job over the internet, which is generally much, much slower than a LAN, so printing large PDF's, photos, etc… can be very slow.
Sometimes, especially with multi-function printers, and especially with HP printers, you have to go even further. See Install HP Printers on Server for the procedure for HP multi-function printers.