141 lines
4.5 KiB
Plaintext
141 lines
4.5 KiB
Plaintext
|
' Copyright 2007 GroundWork Open Source Inc.
|
||
|
'
|
||
|
' This program is free software; you can redistribute it and/or
|
||
|
' modify it under the terms of the GNU General Public License
|
||
|
' as published by the Free Software Foundation; version 2
|
||
|
' of the License.
|
||
|
'
|
||
|
' This program is distributed in the hope that it will be useful,
|
||
|
' but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
' GNU General Public License for more details.
|
||
|
'
|
||
|
'
|
||
|
' Author Dr. Dave Blunt at GroundWork Open Source Inc. (dblunt@groundworkopensource.com)
|
||
|
|
||
|
'*************************************************************************************************
|
||
|
' Public Variable
|
||
|
'*************************************************************************************************
|
||
|
Const intOK = 0
|
||
|
Const intCritical = 2
|
||
|
Const intError = 3
|
||
|
Const intUnknown = 3
|
||
|
|
||
|
Dim arg(20)
|
||
|
i = 0
|
||
|
strComputer = "."
|
||
|
strNamespace = "root\cimv2"
|
||
|
strClass="Win32_Service"
|
||
|
strProperty = ""
|
||
|
strUser = ""
|
||
|
strPass = ""
|
||
|
|
||
|
strNameList = ""
|
||
|
countertypeFound = 0
|
||
|
|
||
|
'*************************************************************************************************
|
||
|
' Functions and Subs
|
||
|
'*************************************************************************************************
|
||
|
|
||
|
'-------------------------------------------------------------------------------------------------
|
||
|
'Function Name: f_Error.
|
||
|
'Descripton: Display an error notice include : Error Number and Error Description.
|
||
|
'Input: No.
|
||
|
'Output: No.
|
||
|
'-------------------------------------------------------------------------------------------------
|
||
|
Function f_Error()
|
||
|
|
||
|
nbrError = err.number
|
||
|
if (nbrError <> 0 ) then
|
||
|
Select Case nbrError
|
||
|
Case 462, -2147023174
|
||
|
strExitMsg = "Timeout connecting to WMI on this host! Error Number: " & nbrError & " Description: " & err.description
|
||
|
Case -2147024891
|
||
|
strExitMsg = "Authentication failure to remote host! Error Number: " & nbrError & " Description: " & err.description
|
||
|
Case -2147217392
|
||
|
strExitMsg = "Error! Number: " & nbrError & " Description: Invalid Class"
|
||
|
Case Else
|
||
|
strExitMsg = "Error! Number: " & nbrError & " Description: " & err.description
|
||
|
End Select
|
||
|
wscript.echo strExitMsg
|
||
|
wscript.quit(intUnknown)
|
||
|
end if
|
||
|
|
||
|
End Function
|
||
|
|
||
|
|
||
|
'*************************************************************************************************
|
||
|
' Main Function
|
||
|
'*************************************************************************************************
|
||
|
On Error Resume Next
|
||
|
For i=0 to WScript.Arguments.Count-1
|
||
|
arg(i)=WScript.Arguments( i )
|
||
|
Next
|
||
|
|
||
|
|
||
|
if (i=3) then
|
||
|
strComputer=arg(0)
|
||
|
strClass=arg(1)
|
||
|
strProperty=arg(2)
|
||
|
else
|
||
|
if (i=5) then
|
||
|
strComputer=arg(0)
|
||
|
strClass=arg(1)
|
||
|
strProperty=arg(2)
|
||
|
strUser=arg(3)
|
||
|
strPass=arg(4)
|
||
|
else
|
||
|
if (i=2) then
|
||
|
strComputer=arg(0)
|
||
|
strClass=arg(1)
|
||
|
else
|
||
|
if (i=4) then
|
||
|
strComputer=arg(0)
|
||
|
strClass=arg(1)
|
||
|
strUser=arg(2)
|
||
|
strPass=arg(3)
|
||
|
else
|
||
|
wscript.echo "Usage: get_counter_type.vbs <hostname> <class> [<property>] [<user> <password>]"
|
||
|
wscript.quit(3)
|
||
|
end if
|
||
|
end if
|
||
|
end if
|
||
|
end if
|
||
|
|
||
|
|
||
|
if (strUser <> "") then
|
||
|
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
|
||
|
Set objWMIService = objSWbemLocator.ConnectServer _
|
||
|
(strComputer, strNamespace , strUser, strPass )
|
||
|
f_Error()
|
||
|
Set objClass = objWMIService.Get(strClass)
|
||
|
f_Error()
|
||
|
else
|
||
|
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\" & strNamespace)
|
||
|
f_Error()
|
||
|
set objClass = GetObject("winmgmts:\\" & strComputer & "\" & strNamespace & ":" & strClass)
|
||
|
end if
|
||
|
f_Error()
|
||
|
|
||
|
For Each objClassProperty In objClass.Properties_
|
||
|
If (strProperty<>"") Then
|
||
|
If objClassProperty.Name = strProperty Then
|
||
|
For Each objQualifier in ObjClassProperty.Qualifiers_
|
||
|
If objQualifier.Name = "countertype" Then
|
||
|
countertypeFound = 1
|
||
|
wscript.echo "Property " & objClassProperty.Name & " countertype = " & objQualifier.Value
|
||
|
End If
|
||
|
Next
|
||
|
End If
|
||
|
Else
|
||
|
strNameList = strNameList & objClassProperty.Name & " "
|
||
|
End If
|
||
|
Next
|
||
|
|
||
|
if (strProperty="") then
|
||
|
wscript.echo strNameList
|
||
|
else
|
||
|
if (countertypeFound=0) then
|
||
|
wscript.echo "Property " & strProperty & " does not have a defined countertype."
|
||
|
end if
|
||
|
end if
|