Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Script for migrating printers
- #BTC address 1B62WVgAcpbGcW94B62WB7Lwq32Gto1mTV
- Option Explicit
- Dim objWMIService, objPrinter, colItems, strComputer, objWshShell, strDefaultState
- strComputer ="."
- ' --------------------------------------------
- Set objWshShell = WScript.CreateObject("WScript.Shell")
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
- ' For Remote:
- ' Set Locator = CreateObject("WbemScripting.SWbemLocator")
- ' Set objWMIService = Locator.ConnectServer(strComputer, "root\cimv2", strUserName, strPassword)
- Set colItems = objWMIService.ExecQuery ("SELECT * FROM Win32_Printer")
- ' On Error Resume Next
- For Each objPrinter In colItems
- If UCase(objPrinter.DeviceID) = UCase("\\oldprintserver\oldprintername") Then
- ' Add new printer. Need the ,1,true to wait for shell to complete before continue
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /in /q /Gw /n \\newprintserver\newprintername",0, true
- ' Remove the old
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /dn /q /n \\oldprintserver\oldprintername",1, true
- If objPrinter.Default Then ' if it's the default set as default
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /y /n \\newprintserver\PRT-thing",1, true
- End If
- End If
- If UCase(objPrinter.DeviceID) = UCase("\\oldprintserver\oldprintername") Then
- ' Add new printer. Need the ,1,true to wait for shell to complete before continue
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /in /Gw /q /n \\newprintserver\newprintername",1, true
- ' Remove the old
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /dn /q /n \\oldprintserver\oldprintername",1, true
- If objPrinter.Default Then ' if it's the default set as default
- objWshShell.Run "rundll32 printui.dll,PrintUIEntry /y /n \\newprintserver\newprintername",1, true
- End If
- End If
- Next
- WScript.Quit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement