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