Monday, May 17, 2010

Sharing a printer from Windows 7 to Vista/XP

Many people encounter a problem, when trying to share a local (USB) printer from Windows 7 to it's older cousins, like Windows XP, or Vista.

The problem is that many manufacturers (HP, Canon, etc.) have decided to package their printer drivers into executable installer file, instead of using Microsoft's "inf" file format with libraries.
Windows printer sharing service allows to provide drivers for others versions of Windows for the guest computers, however it requires drivers in the "inf" file format. On the other hand, the guest system can use it's own drivers, if the server (host) doesn't have the correct version, then again it requires the "inf" format. So, apparently, we are in a deadlock.

Fortunately there is a trick that helps to avoid this deadlock.
You will need to:
  1. Install the printer locally on the guest and host machines.
  2. On the host machine to share the printer
  3. On the guest machine
    1. Go to the printer's preferences (right click ->  preferences)
    2. Go to port tab
    3. Add port -> Local port -> enter the shared printer's network path (eg. \\PC\Printer).
    4. Confirm
  4. Check that it works.
This way we make Windows to use the installed drivers, even if the manufacturer didn't provide the "inf" files installer (probably on purpose).

Hat tip to user kgo08 on Tom's Hardware forums.