Random Network Printer Problems
Server Windows 2003 SP1
Clients Windows XP SP2
Been sctracthing my head for a while with this now. Most of our networked printers are installed on a Windows 2003 printserver using TCP/IP ports and installed on the clients using a per machine printer connection. (rundll32)
This setup has worked well for over a year but users are now randomly receiving errors when printing. For example, when printing from Word, the printer appears to be installed and print options (no of copies etc) can be set but an error is displayed when the user clicks 'Print', 'Windows cannot print due to a problem with the current printer setup'
Printing from notepad gives 'Incorrect function'. Wordpad gives no error but the dialog box that usually displays spooling progress doesn't appear.
The event log on both client and server show's nothing of relevance.. the only print entries in the server logs are print job records.
I've tried logging on as a user with admin rights on an affected client. The correct printer appears in Control Panel | Printers applet but print jobs fail. if I try to to view the properties of the printer, there's a noticeable delay before they are displayed. After this, printing works correctly!
Grateful for any ideas.
Thanks.
--
JB
Re: Random Network Printer Problems
Hi.
Check the printer driver versions on both server and client and make sure they match. See if that turns up anything useful.
Paul
Re: Random Network Printer Problems
Hi,
I've checked the driver files in the printer properties box | About tab and in the spool folders on a few machines, and those that exist in both locations have the same file version / modified date etc.
Thanks,
--
JB
Re: Random Network Printer Problems
I've had the odd weird issue with printers connected per-machine and have come to the conclusion it probably wasn't the best deployment option for printers.
Try removing any spaces from the printer name & from the share on your print server. You obviously then need to disconnect the printers from clients (via rundll), restart spooler locally then re-connect them again to the new name (and restart spooler again).
I can see why the per-machine switch isn't very well documented, it doesn't work entirely as you'd expect in many regards! :)
Good luck!
Re: Random Network Printer Problems
There's a (sort of!) know issue with Windows Server 2003 and network printers if the driver is big. What appears to happen is that not all the driver files get copied across the network at logon. If this does happen then you get a corrupd driver and printing will fail in odd ways.
We use Kyocera printers and they tell us they are working with MS for a fix; in the interim they suggested using their own mini-drivers (which don't give all the functionality but pretty much no-one uses it so that's no loss). Since we changed we've had no problems.
If you can't find something like a mini-driver for your printer then can you use an equivalent driver provided by Windows (eg HP LaserJet 4 works for most laser printers) and see if that helps.
Something else to try is deleting all drivers from a machine with problems - this can be hard to do; Kyocera have a driver deleter tool which will do it for you (it's generic - it will delete any printer drivers) - available at http://amistad.kyocera.co.uk/pages/i.../utilities.asp
Re: Random Network Printer Problems
A few tips which may help.
On ALL of our printers on our network I have set them to 'print only after the last page has spooled'
This is a setting in the Advanced Tab on the driver.
Also I stop and start the print spooler on the server once a day. [ Just before 7am - this is done via a simple CMD batch file ]
And here is the VBS script I use to connect PCs to printers - its short, simple and works. I have seen other scripts which are too large, too complex and just plain daft. This script runs when a user logs in:
Quote:
Set WshNetwork = CreateObject("WScript.Network")
rem ** This will delete existing printers **
On Error Resume Next
Set oPrinters = WshNetwork.EnumPrinterConnections
For i = 1 to oPrinters.Count - 1 Step 2
WshNetwork.RemovePrinterConnection oPrinters.Item(i)
Next
rem ** Adds printers - new line for each printer **
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "\\SRVNAME\PTRSHARE"
WshNetwork.AddWindowsPrinterConnection "\\SRVNAME\PTRSHARE2"
rem ** Setup default printer **
WshNetwork.SetDefaultPrinter "\\SRVNAME\PTRSHARE"
Good luck !!
Note: SRVNAME = your server name
PTRSHARE = printer share name