Sun 21 Mar 2010
Remap printers using wscript
Posted by Internat under VBS/WSCRIPT
No Comments
For work i had to come up with a way to remap printers since our current print server is on the way out.. I was pondering at home about the best way to do this with minimal work for the service desk or for me, and this is what i came up with.. Easy way to map any old printers to new ones.. Just have to update the findnewPrinter function with the old vs new printers..
'Script to map and remove printers from old print server to new one 'Needs an entry in findNewPrinter function for each mapping 'nfrankish;2010-03-21 Set objNetwork = CreateObject("Wscript.Network") strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Function findNewPrinter(Printername) select case PrinterName case "\\OldPrintServer\OldPrinterQueue" findNewPrinter = "\\newprintserver\newprintqueue" case else wscript.echo "Printer: " & Printername & " not found" findNewPrinter = "" end select end function Set colPrinters = objWMIService.ExecQuery _ ("Select * From Win32_Printer Where Local = FALSE") For Each objPrinter in colPrinters wscript.echo "Printer: " & objprinter.Name & " Default: " & objprinter.default strNewPrinter = findNewPrinter(objprinter.name) if not (strNewPrinter = "") then objNetwork.AddWindowsPRinterConnection strNewPrinter if (objPrinter.default) then objNetwork.SetDefaultPrinter strNewPrinter end if objNetwork.RemovePrinterConnection objprinter.name, true, true end if Next