lavascript Posted August 24, 2012 Posted August 24, 2012 Ok, I'm hoping someone here can spot a problem that I'm missing. I'm in the process of converting all my workstations from printing through a print server to using TCP/IP ports. To make things easier, I'm scripting what I can. The script below is an example of what I'm doing, for an HP LaserJet P3005 and a Color LaserJet 3600. It works beautifully for both on x64, and for the color on x86, but with the p3005 on x86, I get an "Operation could not be completed" error. Since the only differences between the commands seem to be the driver, it would be the likely culprit. But on the same x86 XP box that throws the error, I can manually install that same driver with no problem. I'm attaching the .inf file in case it helps. Also, that box already had a P3005 PCL6 driver, so the /u switch on PrintUIEntry should have ignored the driver path, right? Anybody see something I'm missing? Thanks. expandcollapse popupInstallPrinter("HS Lobby 1","10.38.124.145","p3005") InstallPrinter("HS Lab Color","10.38.124.181","clj3600") Func InstallPrinter($PrName,$Address,$Driver,$Prompt=0) Local $msg If $Prompt = 1 Then $msg = MsgBox(35,"Question","Install "&$PrName&"?") Sleep(100) If $msg = 2 Then Exit If $msg = 7 Then Return $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2") $objNewPort = $objWMIService.Get("Win32_TCPIPPrinterPort").SpawnInstance_ $objNewPort.Name = "IP_"&$Address $objNewPort.Protocol = 1 $objNewPort.HostAddress = $Address $objNewPort.PortNumber = "9100" $objNewPort.SNMPEnabled = False $objNewPort.Put_ $DriverPath = "\\server\util\drivers\"&@OSArch&"\printers" ;I've removed several of the Cases here for brevity. Select Case @OSArch="x86" AND $Driver="p3005" $LocalPath = $DriverPath & "\ljp3005.pcl6\hpc300xc.inf" $Model = "HP LaserJet P3005 PCL 6" Case @OSArch="x64" AND $Driver="p3005" $LocalPath = $DriverPath & "\ljp3005.pcl6\hpc300xu.inf" $Model = "HP LaserJet P3005 PCL 6" Case @OSArch="x86" AND $Driver="clj3600" $LocalPath = $DriverPath & "\clj3600\hpc3600e.inf" $Model = "HP Color LaserJet 3600" Case @OSArch="x64" AND $Driver="clj3600" $LocalPath = $DriverPath & "\clj3600\hpc3600w.inf" $Model = "HP Color LaserJet 3600" Case $Driver="wc5135" $LocalPath = $DriverPath & "\wc5135.ps\x2WPENP.inf" $Model = "Xerox WorkCentre 5135 PS" Case $Driver="d2150" $LocalPath = $DriverPath & "\d2150.pcl6\dlxrozi.inf" $Model = "Dell 2150cdn Color Printer PCL6" EndSelect RunWait('rundll32 printui.dll,PrintUIEntry /if /b "'&$PrName&'" /f "'&$LocalPath&'" /r "IP_'&$Address&'" /m "'&$Model&'" /u') EndFunchpc300xc.inf.txt
Bert Posted August 24, 2012 Posted August 24, 2012 Have you looked at WebJetAdmin? The Vollatran project My blog: http://www.vollysinterestingshit.com/
lavascript Posted August 27, 2012 Author Posted August 27, 2012 Have you looked at WebJetAdmin?No, but we're not an hp-only shop. We've also got to manage Xerox machines, Dell printers, and even a few Brothers.
Bert Posted August 27, 2012 Posted August 27, 2012 (edited) WebJetAdmin can work with these units as well. Try it and you will see what I mean. I think (memory is a bit rusty) there are plug-ins for various vendors Edited August 27, 2012 by scullion The Vollatran project My blog: http://www.vollysinterestingshit.com/
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now