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

18 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 ...

Anonymous said...

Hi,

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

Anonymous 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

François Pépin 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

Anonymous said...

Izvinqwam se za latinizirania Balgarski. Wsichko izpulnih spored ukazaniata, no problema pri men si ostana. V dopalnenie dori dadoh na /system32/spool/printers da e dostapna read only za saotvetnia user na XP-to :(
Yavno v Bulgaria vinagi problemite sa mnogo tejki :)
Edinstwenoto koeto reshava problema e da pusna neshto da se pechata na vistata, tova izvednaj otpushva neshtata i za XP-to i to sashto moje sled tova da si pechata po mrejata kam printera koito e pri vistata. I e taka do sledvashtia restart na XP-to ili puk na Vistata, ili puk i na dvete.
Kakvo da pravia????

Anonymous said...

THANKS! This was very helpful.

Vinyl Sticker said...

wao such a nice informative article thanks for sharing it.

Vinyl Sticker

Anonymous said...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!

Anonymous said...

Thanks for the info,Everyone will be happy to know that this issue still exists in Windows 7

&*#$% MS

Chris Tribble said...

Hi - MANY thanks for this - it's saved my life with two Windows 7 machines (pro + home premium). What I've found is that all that was needed was to make the Policies changes via GPEDIT (I'd never have found this on my own) and turn off bidirectional on the server computer. No need to install different drivers. Now everything works and my partner's not being infuriated by having to ask me to print stuff for her. THANKS!

Chris Tribble said...

Ahh ... a problem! The fix doesn't work after a re-boot. The only way I seem to get this working with Windows 7 is to force cooperation every time I re-boot by:

1/ stopping and restarting the print spooler
2/ enabling bidirectional
3/ printing a test page from the host PC
4/ disenabling bidirectional

Printer sharing then works - but it's seriouslt tedious having to do this every time I boot.

Has anyone found a way of getting this to work permanently? The confusion I have is that as it's clearly possible to make this work, why can't it be made to work all the time? HELP ... !

Best

Chris

Anonymous said...

When sharing I have seen the "Enable bidirectional support" button go grayed out and disabled. To get it back enabled you have to have a Language Monitor. To do that edit the registry entry "HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Version-3\(The Driver Name Here)\Monitor" to the value it had previously. It will be one of the entrys at "HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors".

Anonymous said...
This comment has been removed by a blog administrator.
Martin said...

The article was very helpfull when I tried to share the printer form the windows vista or 7 systems. But when I tried to share Lexmark X1270 I found another problem with communication with the print processor from lexmark (I hope it is good translation from polish, because my system is in that language). The shared printer works properly after another change in configuration on the server (and the same on clinet):

- open "printer properties"
- go to the "advanded" tab
- click on the "print processor..." button
- chose "winprint" on the left, and "RAW" on the right
- save and use :)

It looks like that some p[rint processors doesn't work properly with sharing?

Cheap Julius Caesar Tickets said...

You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post. I am glad I did mainly because it was a really fulfilling read.