I cut and paste the script below from various Microsoft web pages. My
intention is to delete a specific ip printing port (if it exists), add it
under my terms, and then add the actual printer. I think I've found all the
proper code except for adding the printer itself! Can anyone please help me
out?
Thanks,
Jeremy
Code
------------------------------------------------------
'add-ip-printer.vbs
'used to setup a Lexmark Optra S 1650 (PS) printer on ip port 10.24.124.71
'Before this script runs, a batch file with the following command runs
'to delete all local printers
'cscript prnmngr.vbs -x
'Make sure port we want to add is not added under some other name
strComputer = "."
Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPorts = objWMIService.ExecQuery ("Select * from
Win32_TCPIPPrinterPort Where Name = 'IP_10.24.124.71'")
For Each objPort in colInstalledPorts
objPort.Delete_
Next
'Delete all unused printer ports
strComputer = "."
Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrinter in colPrinters
objDictionary.Add objPrinter.PortName, objPrinter.PortName
Next
Set colPorts = objWMIService.ExecQuery ("Select * from
Win32_TCPIPPrinterPort")
For Each objPort in colPorts
If objDictionary.Exists(objPort.Name) Then
Else
ObjPort.Delete_
End If
Next
'Add our printer port
strComputer = "."
Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewPort = objWMIService.Get ("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "IP_10.24.124.71"
objNewPort.Protocol = 1
objNewPort.HostAddress = "10.24.124.71"
objNewPort.PortNumber = "9999"
objNewPort.SNMPEnabled = False
objNewPort.Put_
'Add printer driver if not already in list
'Not required for this particular script
'strComputer = "."
'Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'objWMIService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege",
True
'Set objDriver = objWMIService.Get("Win32_PrinterDriver")
'objDriver.Name = "NewPrinter Model 2900"
'objDriver.SupportedPlatform = "Windows NT x86"
'objDriver.Version = "3"
'objDriver.DriverPath = "C:\Scripts\NewPrinter.dll"
'objDriver.Infname = "C:\Scripts\NewPrinter.inf"
'intResult = objDriver.AddPrinterDriver(objDriver)
'Add the actual printer
'??????????????
'Make the printer default
strComputer = "."
Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from
Win32_Printer Where Name = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
objPrinter.SetDefaultPrinter()
Next