We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Script or GPO to unstall Printers and reinstall them

Medium Priority
217 Views
Last Modified: 2012-05-07
I'm in the process of moving my print server to a new 2008 box.  Is there a way to unstall the printers from all the desktops and reinstall them via a group policy or bat file? Not everyone uses the same printers
Comment
Watch Question

Commented:
Paste the script below into a text file with a .vbs extension.  Customize the value of the strOldServer variable on line 1 with the name of the old print server.  Customize the value of the strNewServer variable on line 2 with the name of the new print server.  Running the script will find all printers mapped to the old server and re-map them to the new server using the same share names.

This could be run as a logon script.


strOldServer = "printserver"
strNewServer = "new-printserver"
 
On Error Resume Next
 
Set objNetwork = CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
 
Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * From Win32_Printer")
 
For Each objPrinter in colInstalledPrinters
    If LCase(objPrinter.ServerName) = "\\" & LCase(strOldServer) Then
        strNewPrinter = "\\" & strNewServer & "\" & objPrinter.ShareName
        objNetwork.AddWindowsPrinterConnection strNewPrinter
        
        If objPrinter.Default = "True" Then
            objNetwork.SetDefaultPrinter strNewPrinter
        End If
        
        objPrinter.Delete_
    End If
Next

Open in new window

Author

Commented:
Can you do this via group policy in 2008?

Author

Commented:
i'm going to try this and I'll let you know. Thanks in advance.

Author

Commented:
stupid question.  leave the "'s?

Commented:
Yes, leave the quotation marks.

Author

Commented:
it's not working. I tried running the script on the machine and nothing happens.

Author

Commented:
This is what I did.
strOldServer = "hcidc02"
strNewServer = "hcidc2"
 
On Error Resume Next
 
Set objNetwork = CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
 
Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * From Win32_Printer")
 
For Each objPrinter in colInstalledPrinters
    If LCase(objPrinter.ServerName) = "\\" & LCase(hcidc02) Then
        hcidc2 = "\\" & hcidc2 & "\" & objPrinter.ShareName
        objNetwork.AddWindowsPrinterConnection hcidc2
       
        If objPrinter.Default = "True" Then
            objNetwork.SetDefaultPrinter hcidc2
        End If
       
        objPrinter.Delete_
    End If
Next

Commented:
No, per the instructions the only lines you should be editing are 1 and 2.


strOldServer = "hcidc02"
strNewServer = "hcidc2"
 
On Error Resume Next
 
Set objNetwork = CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
 
Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * From Win32_Printer")
 
For Each objPrinter in colInstalledPrinters
    If LCase(objPrinter.ServerName) = "\\" & LCase(strOldServer) Then
        strNewPrinter = "\\" & strNewServer & "\" & objPrinter.ShareName
        objNetwork.AddWindowsPrinterConnection strNewPrinter
        
        If objPrinter.Default = "True" Then
            objNetwork.SetDefaultPrinter strNewPrinter
        End If
        
        objPrinter.Delete_
    End If
Next

Open in new window

Author

Commented:
I tried that origionally.  I'll try again.

Author

Commented:
Ok that deleted the printers but it didn't install them.

Commented:
Are the printers on the new server shared under the same names as on the old server?

Author

Commented:
No I made sure to make them different.  They are simular but not the same.
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
OK If that's all it is I'll rename the shares to match and try that.  i'll get back to you on Monday.  Thanks.

Author

Commented:
Thanks for your help. The script worked.  I appreciated all your efforts.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.