Advice on using Win32_Printer

  • Thread starter Thread starter Joseph
  • Start date Start date
J

Joseph

Hello everyone,

Could someone tell me if this script would do what I want,
which is to enumarate the printers attached to each Server.

I get an error, which I think indicates that I do not have admin rights on
these servers.
Is that correct?

If I know that this script would work, then I can add what I need it to do
(create a web page with some of the results returned),
then ask someone else, in another country, to run it for me.
TIA

'http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_printer.asp
On Error Resume Next

Dim arrPrSrv(7)
Dim i
'arrPrSrv(0) = "." '. local computer
arrPrSrv(1) = "PrtSrv1"
arrPrSrv(2) = "PrtSrv2"
arrPrSrv(3) = "PrtSrv3"
arrPrSrv(4) = "PrtSrv4"
arrPrSrv(5) = "PrtSrv5"
arrPrSrv(6) = "PrtSrv6"
arrPrSrv(7) = "PrtSrv7"

For i = 1 To 7

strComputer = arrPrSrv(i)
Set objWMIService = GetObject("winmgmts:\\" & strComputer &
"\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from
Win32_Printer",,48)

' WScript.Echo strComputer
For Each objItem In colItems
WScript.Echo "Name: " & objItem.Name & Chr(13) _
& "ServerName: " & objItem.ServerName & Chr(13) _
& "ShareName: " & objItem.ShareName & Chr(13) _
& "Port Name: " & objItem.PortName ' what I'm after - as this
can be used to work out the htm address:
'
Note that the 'Web Page Address' as displayed by AD
'
does not work, http://<IP_Address> does
Next

Next

If Err <> 0 Then

If err.Code = 80041003 Then ' 0x0080041003 = admin rights required
' MsgBox Err.number & Chr(13) _
' & err.description
WScript.Echo Err.number & Chr(13) _
& err.description
End If

End If
 
Yes, that code looks fine.

Sometimes people prefer to limit the WQL Query that they use just down to
the properties that they need to consume.

In your code you have:
So this query would work for you as well.
Select Name, ServerName, ShareName, PortName from Win32_Printer
instead of
select * from win32_printer
 
Back
Top