Friday, January 4, 2008

Network printing with VISTA and XP / print spooler hangs

Hello,
Merry Christmas and Happy New 2008 !!

So, May be you have heard a lot of "Print Spooler hangs" using Windows Vista and sharing a printer. I had a terrible couple of days looking for solution of the problem. Including online chat with HP support and posting on Microsoft TechNet forums.

Problem anatomy:

  1. Desktop station with Vista 64. HP LaserJet 1018 connected to it (have full support for VISTA 64 and print local jobs just fine, latest drivers installed from the HP site). Shared.
  2. Laptop with XP SP2 x86.
  3. Successfully browsed from the XP to the shared printer. Installed as a local printer on the Laptop using new local port (\\vista-pc\printerName).

Now, the only way I got this printer to print job from the XP is the following:

  1. In VISTA: Turn the UAC OFF.
  2. In XP: Authenticate to the VISTA with the username that is the OWNER of the printer.

Any other attempts to print (i.e. authenticate with different name, that has full access to the printer /SECURITY TAB/, or UAC ON) just sends the print job to the Queue and nothing happens until restart of print spooler service on the VISTA.

Here is the solution:
What do you need to make it work?

  1. Lots of patience;
  2. Correct drivers for correct OS (i.e. VISTA or XP) and platform (i.e. x86 or x64)
  3. First install the printer locally and make sure everything's fine (note: there are still number of printers that currently do not have VISTA drivers)
  4. Share the printer

The tricky part - change the following policies in the VISTA host:

  1. Local Computer Policies\Administrative Templates\Printers:
    Allow print spooler to accept client connections > to enabled
  2. User Configuration\Administrative Templates\Control Panel\Printers:
    Point and Print Restrictions > to disabled

Note: To change local policies you can click the "START" and then in the search box type in: gpedit.msc

The drivers part - install the additional drivers on the VISTA box:

  1. On your VISTA box open printer and faxes
  2. right click blank field
  3. Run as administrator
  4. Server Properties
  5. Drivers Tab
  6. Add the additional drivers (i.e. x86 drivers or x64 drivers)

The next trick (optional if the above scenario still does not solve the problem):

  1. Again open printers and faxes on your VISTA
  2. Locate the installed printer
  3. Right click
  4. Run as administrator
  5. Properties
  6. Ports tab
  7. UNCHECK the "Bidirectional support" checkmark
  8. Apply
  9. OK

The funniest:

  1. Go to the client (that will use the shared printer)
  2. Open Printers and faxes
  3. Right click on an empty space
  4. Add printer
  5. Choose add LOCAL PRINTER and UNCHECK the "Automatically detect plug & play printer connected ..."
  6. Choose to Create a new port
  7. Choose Local port
  8. The port name - be very careful, the name should be as follows: \\VISTA-PC-NAME\Shared-printer-name
  9. Next
  10. Choose the type of the printer (at that point you must have the appropriate drivers for the that printer)
  11. Finish the installation of the printer

Voila!
Hope this will work out for you.

The original forum posts are here:
http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2629862&SiteID=17

7 comments:

Martin Kulov said...

Phew,

they should give the printer with a manul how to run it on Vista!

Anton Staykov said...

Or update the mentioned policies with the January set of Windows Updates ...
This is unbelievable ...

Hotel key card printing said...

Hi,

That is very good and informative post.
It'll really help me and many.
Thanks.

Nemanja Janic said...

Hi Anton,

thank you very much for this (it is old news, i know, but i only just stumbled upon this problem).

Anonymous said...

Many, many thanks for posting this! I tried everything I knew, but I never would have guessed you had to fiddle with Security Policies to get it to work. I also needed the 'Enable Bidrectional support' trick to make it work.
Thanks again!

Anonymous said...

you are a genius !!!
thank you so much

Francois said...

For those with Vista Home Premium:
To set the policies mentioned without the Local Security Policy or gpedit.msc, you can copy the text below to a .reg file and import into your registry.

After setting these policies in the registry I also had to disable bidirectional support by right clicking on my printer and choosing Properties. Then on the bottom of the Ports tab I unchecked the Enable Bidirectional Printing Support box.

Here's the registry file text:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers]
"RegisterSpoolerRemoteRpcEndPoint"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint]
"Restricted"=dword:00000000