1) Run a script at machine startup that connects to every network printer. Then deletes them. This will load the drivers for you and prevent the above problem occurring. Like so:
Code:
' Startup script to add network printer drivers at startup
' Author: Ric Charlton, 11/04/07
' Declare variables and enumerate existing printer connections
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
' Delete existing connections to network printers (parallel and USB printers will not be deleted)
For i = 0 to oPrinters.Count - 1 Step 2
On Error Resume Next
if Left(oPrinters.Item(i), 3) <> "lpt" And Left(oPrinters.Item(i), 3) <> "usb" then
WshNetwork.RemovePrinterConnection oPrinters.Item(i+1), true, true
else WScript.Echo "No network printers found"
end if
Next
' Add printer connections
' Variable to select print server
Dim printServer
printServer = "philyra"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\Brother2600"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\gnvqpr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\it1pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\it2pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\it3pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\it4pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\it5pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\lrcpr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\offpr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r23pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r26pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r26pr02"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r7pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\sc8pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\staffroom"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r11pr01"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\r11pr01bw"
WshNetwork.AddWindowsPrinterConnection "\\" & printServer & "\lrcpr01"
' Delete connections to network printers
oPrinters = WshNetwork.EnumPrinterConnections
For i = 0 to oPrinters.Count - 1 Step 2
On Error Resume Next
if Left(oPrinters.Item(i), 3) <> "lpt" And Left(oPrinters.Item(i), 3) <> "usb" then
WshNetwork.RemovePrinterConnection oPrinters.Item(i+1), true, true
else WScript.Echo "No network printers found"
end if
Next 2) Our printer server is Linux/Cups/Samba based. As such it doesn't use the HP drivers. There's a generic postscript driver used on the windows side for all printers. The server then transmogrifies this postscript into the printers specific format. Assistance is available in the *nix forum for anyone interested in setting this up.