' ShowPrnT.vbs, Version 1.00 ' Display all installed printers in a TAB delimited format. ' ' Written by Rob van der Woude ' http://www.robvanderwoude.com ' Check command line arguments Select Case WScript.Arguments.Count Case 0 ' Default if none specified is local computer (".") Set objWMIService = GetObject( "winmgmts://./root/cimv2" ) Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 ) For Each objItem in colItems strComputer = objItem.Name Next Case 1 ' Command line parameter can either be a computer name ' or "/?" to request online help strComputer = Wscript.Arguments(0) if InStr( strComputer, "?" ) > 0 Then Syntax Case Else ' Maximum is 1 command line parameter Syntax End Select ' Initialize variable strMsg = "Printer Name:" & vbTab _ & "Port Name:" & vbTab _ & "Driver Name:" & vbTab _ & "Server Name:" & vbTab _ & "Share Name:" & vbCrLf ' We'll use our own error handling On Error Resume Next ' Connect to specified computer Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") ' Display error number and description if applicable If Err Then ShowError ' Query installed printers' properties Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48) ' Display error number and description if applicable If Err Then ShowError ' Format output for display For Each objItem in colItems strMsg = strMsg _ & objItem.Name & vbTab _ & objItem.PortName & vbTab _ & objItem.DriverName & vbTab _ & objItem.ServerName & vbTab _ & objItem.ShareName & vbCrLf Next ' Display the results WScript.Echo strMsg 'Done WScript.Quit(0) Sub ShowError() strMsg = vbCrLf & "Error # " & Err.Number & vbCrLf & _ Err.Description & vbCrLf & vbCrLf Syntax End Sub Sub Syntax() strMsg = strMsg & vbCrLf _ & "ShowPRNT.vbs, Version 1.01" & vbCrLf _ & "Display installed printers properties for " _ & "any computer" & vbCrLf _ & "on the network in a tab delimited format" _ & vbCrLf & vbCrLf _ & "Usage: CSCRIPT //NOLOGO SHOWPRNT.VBS " _ & "[ computer_name ]" & vbCrLf & vbCrLf _ & "Where: " & Chr(34) & "computer_name" & Chr(34) _ & " is the optional name of a remote" & vbCrLf _ & " computer (default is local computer " _ & "name)" & vbCrLf & vbCrLf _ & "Written by Rob van der Woude" & vbCrLf _ & "http://www.robvanderwoude.com" & vbCrLf & vbCrLf _ & "Created with Microsoft's Scriptomatic tool" & vbCrLf _ & "http://www.microsoft.com/technet/treeview/default.asp" _ & "?url=/technet/scriptcenter/WMImatic.asp" & vbCrLf WScript.Echo strMsg WScript.Quit(1) End Sub