Since both my wife and I have home offices and do consulting work, we have a house-wide network to connect together our 5 or 6 office computers (some running Linux, some Windows XP). We also have a number of printers (3 at last count) hanging off of various machines. Naturally, all of the printers are set up so that we can print to any printer from whatever machine we happen to be using.
Recently, we discovered a need to print to one of these local networked printers while remotely logged into a client’s machine via Remote Desktop.
For a locally connected printer, this isn’t a problem. One just has to make sure that the “printers” box is checked on the “local resources” tab of the Remote Desktop client before connecting.
However, only printers plugged into local LPT, COM and USB ports on the machine making the connection will be visible from the remote machine. Networked printers won’t be.
On Windows 98, all one had to do to solve this problem was to go to the printer configuration panel and ask for a local port such as LPT3 to be mapped to a network location. Once it shows up as a local port, it will be visible to the remote machine.
Although Windows XP has the same functionality, the option has been removed from the GUI. Now one has to use the ‘NET USE’ command from the command shell to have the same effect.
So, for example, if one wished to be able to use the the network printer \\server\mfp from a remote location, first choose an LPT port that isn’t in use on the local computer, such as LPT2, then start up a command shell, and enter the command:
NET USE LPT2 \\server\mfp /PERSISTENT:YES
and the local machine will now be able to print to the network printer using the LPT2 port. The /PERSISTENT option tells the machine that you wish this mapping to be permanent (until removed). Without it, the mapping will go away when next you reboot. In any case, you can always remove the mapping simply by entering:
NET USE LPT2 /DELETE
At this point, the printer should now show up in the list of printers on machines you connect to via Remote Desktop. If it doesn’t it may be that there is no driver on the remote machine for type of your network printer. Just install the appropriate drivers on the remote machine, and everything should work.
I should mention that the \\server\mfp string up above is a windows UNC path to the printer. It can take one of several forms. Normally, one would use the published UNC path as it shows up in your Networks folder. For instance, if I look in my Networks folder (in the Comments column, or by hovering my mouse over a share icon) I’ll see a printer named \\Timelord\hp4, and another called \\Speedy\labeler. The first is my HP laser-printer that hangs off of the machine called Timelord, while the second is our label-maker that is connected to Speedy, my wife’s machine.
Now, I happen to know that the internal IP address of Speedy is 192.168.1.55, so I could use a path of \\192.168.1.55\labeler instead. I could also use \\speedy.local.net\labeler, since we have a local DNS server that will map the name speedy.local.net to its IP address. Which one of these is right for you depends on your network configuration.
Finally, I would like to thank Paul Lesniewski who wrote to let me know of a potentially easier method. The idea is to set up a ‘printing pool’ that consists of only the printer you wish to make local and an unused local printer port.
I’m not going to go into all the ins and outs of setting up a printer pool, when there’s a very good article on it that I can point you too, so I’ll be brief.
Go to your “Printers and Faxes” page which you can get to from the Start Menu or the Control Panel. Right click on the network printer that you wish to use remotely, and select properties. Then go to the ports tab and click the ‘enable printer pooling’ checkbox. Now you’ll be able to put check marks in multiple ports. Put one in the remote port for the printer (actually, it should already be checked) and then add a check to an unused printer port. This should now allow you to print to the networked printer from your remote session.
(I was also asked to mention that if you’re logged in to your remote session when doing all this, it won’t automatically be updated about the changes in printer status. You’ll have to log out and disconnect, and then reconnect for the remote session to know about the changes to printers).