VBScript - Printing Client-Side
Contents Under Construction


Contents:
bar1

Adding a Printer Connection
Deleting a Printer
Enumerating Printer Connections
Removing a Printer Connection
Renaming a Printer
Setting the Default Printer
Setting the Default Printer Based on Queue Length


bar1




Adding a Printer Connection
bar1
'Adds a printer connection to a network printer. Script must be run on the local computer.
 

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.AddWindowsPrinterConnection "
\\PrintServer1\Xerox300"
WshNetwork.SetDefaultPrinter "
\\PrintServer1\Xerox300"

bar1

bar1



Deleting a Printer
bar1

'Deletes a printer named ScriptedPrinter.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer where DeviceID = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
    objPrinter.Delete_
Next


bar1

bar1



Enumerating Printer Connections
bar1

'Enumerates all the printer connections on a computer.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
    Wscript.Echo "Name: " & objPrinter.Name
    Wscript.Echo "Location: " & objPrinter.Location
    Wscript.Echo "Default: " & objPrinter.Default
Next


bar1

bar1



Removing a Printer Connection
bar1

'Removes a printer connection to a network printer. Script must be run on the local computer.

Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection "
\\PrintServer\xerox3006"

bar1

bar1




Renaming a Printer
bar1

'Renames both a printer and its printer share name.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where DeviceID = 'HP LaserJet 4Si M'")
For Each objPrinter in colPrinters
    objPrinter.RenamePrinter("ArtDepartmentPrinter")
Next
Set colPrinters = objWMIService.ExecQuery _
    ("Select * From Win32_Printer Where DeviceID = 'ArtDepartmentPrinter' ")
For Each objPrinter in colPrinters
    objPrinter.ShareName = "ArtDepartmentPrinter"
    objPrinter.Put_
Next


bar1

bar1



Setting the Default Printer
bar1

'Sets the default printer on a computer.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
    objPrinter.SetDefaultPrinter()
Next


bar1

bar1


Setting the Default Printer Based on Queue Length
bar1

'Examines all the print queues on a computer, and sets the default printer to the queue with the fewest documents.

intSmallestQueue = 1000
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrintQueues =  objWMIService.ExecQuery _
    ("Select * from Win32_PerfFormattedData_Spooler_PrintQueue " _
        & "Where Name <> '_Total'")
For Each objPrintQueue in colPrintQueues
    intCurrentQueue = objPrintQueue.Jobs + objPrintQueue.JobsSpooling
    If intCurrentQueue <= intSmallestQueue Then
        strNewDefault = objPrintQueue.Name
        intSmallestQueue = intCurrentQueue
    End If
Next
Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Name = '" & strNewDefault & "'")
For Each objPrinter in colInstalledPrinters
    objPrinter.SetDefaultPrinter()
Next


bar1

bar1

 



 





 

 

 

 

 




..About

..I'm a Computer  
..Systems Engineer


..L
iving and loving life

........................................


..Author
....