Add Printer Script

From TrialWorks Wiki
Jump to: navigation, search

Summary

This script, in vbs form, will allow you automatically install network printers on all computers.

Technique

This method involves creating a VBS script and adding it to group policy or logon script.

Script

Create a file called "printers.vbs" in your GPO folder or SYSVOL and add it to your logon script.


Option Explicit
Dim multiPrinter, UNCpath1, UNCpath2, UNCpath3, UNCpath4, UNCpath5
UNCpath1 = "\\server\Sharp550"
UNCpath2 = "\\server\Ricoh3500"
UNCpath3 = "\\server\RICOH2238"
UNCpath4 = "\\server\HP2200DN"
UNCpath5 = "\\server\Dell5210"
 
Set multiPrinter = CreateObject("WScript.Network") 
multiPrinter.AddWindowsPrinterConnection UNCpath1
multiPrinter.AddWindowsPrinterConnection UNCpath2
multiPrinter.AddWindowsPrinterConnection UNCpath3
multiPrinter.AddWindowsPrinterConnection UNCpath4
multiPrinter.AddWindowsPrinterConnection UNCpath5
 
 
WScript.Quit
' End of Script
    Alternative method
Option Explicit
Dim objWshShell
 
Set objWshShell = WScript.CreateObject("WScript.Shell")
 
objWshShell.Run "rundll32 printui.dll,PrintUIEntry /in /Gw /q /n ""\\SBS2011\SHARPCopier""",1, true
    CHANGEPRINT
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
 
'---------------------------------------------
' Each IF block below is a printer replacement
'---------------------------------------------
 
If UCase(objPrinter.DeviceID) = UCase("\\KAREN\magicolor 2300 DL") Then
   ' Wscript.Echo "Found match " & objPrinter.DeviceID & ", replacing"
   ' 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 ""\\T-101\magicolor 2300 DL""",1, true
 
   ' Remove the old
   objWshShell.Run "rundll32 printui.dll,PrintUIEntry /dn /q /n ""\\KAREN\magicolor 2300 DL""",1, true
 
   If objPrinter.Default Then ' if it's the default set as default
      objWshShell.Run "rundll32 printui.dll,PrintUIEntry /y /n ""\\T-101\magicolor 2300 DL""",1, true
   End If
End If 
 
Next
 
WScript.Quit

Group Policy or Logon Script

Take the file you created and add it to your logon script / GP.

Usage

When users logon the script will be triggered and it will connect all network printers. You may be prompted to OK the driver installation on the clients.