ActiveXperts Network Monitor - Home page
Download ActiveXperts Network Monitor 7.1  (7301 KB - .exe file)
Scripts to explore WMI
Configuring the Default WMI Namespace Configuring WMI Settings Enumerating Abstract Classes in WMI Enumerating All WMI Namespaces Enumerating Dynamic Classes in WMI Enumerating Properties, Methods, and Qualifiers for a WMI Class Enumerating Properties for a WMI Class Enumerating Qualifiers for a WMI Class Enumerating WMI Namespaces Enumerating WMI Providers Enumerating WMI Settings Listing the Properties and Methods of the Win32 Classes Listing WMI cimV2 Classes Listing WMI Methods for a Class Retrieving the Definition of a WMI Class in MOF Format Retrieving the Default WMI Namespace
Sets the WMI "Default namespace for scripting" setting to "root\cimv2".
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colWMISettings = objWMIService.InstancesOf("Win32_WMISetting")
For Each objWMISetting in colWMISettings
objWMISetting.ASPScriptDefaultNamespace = "root\cimv2"
objWMISetting.Put_
Next
Configures WMI backup interval and logging level.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWMISettings = objWMIService.ExecQuery _
("Select * from Win32_WMISetting")
For Each objWMISetting in colWMISettings
objWMISetting.BackupInterval = 60
objWMISetting.LoggingLevel = 2
objWMISetting.Put_
Next
Lists all WMI Abstract classes defined in the root\cimv2 namespace.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colClasses = objWMIService.SubclassesOf()
For Each objClass in colClasses
For Each objClassQualifier In objClass.Qualifiers_
If LCase(objClassQualifier.Name) = "abstract" Then
WScript.Echo objClass.Path_.Class & ": " & _
objClassQualifier.Name & "=" & _
objClassQualifier.Value
End If
Next
Next
Lists all WMI namespaces.
strComputer = "."
Call EnumNameSpaces("root")
Sub EnumNameSpaces(strNameSpace)
WScript.Echo strNameSpace
Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace)
Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")
For Each objNameSpace In colNameSpaces
Call EnumNameSpaces(strNameSpace & "\" & objNameSpace.Name)
Next
End Sub
Lists all WMI Dynamic classes (including Association classes) defined in the root\cimv2 namespace.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colClasses = objWMIService.SubclassesOf()
For Each objClass in colClasses
For Each objClassQualifier In objClass.Qualifiers_
If LCase(objClassQualifier.Name) = "dynamic" Then
WScript.Echo objClass.Path_.Class & ": " & _
objClassQualifier.Name & "=" & _
objClassQualifier.Value
End If
Next
Next
Lists the class qualifiers, properties, property qualifiers, methods, and method qualifiers for a specified WMI class.
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Qualifiers"
WScript.Echo "------------------------------"
i = 1
For Each objClassQualifier In objClass.Qualifiers_
If VarType(objClassQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & ". " & objClassQualifier.Name & " = " & _
Join(objClassQualifier.Value, ",")
Else
strQualifier = i & ". " & objClassQualifier.Name & " = " & _
objClassQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
i = i + 1
Next
WScript.Echo
WScript.Echo strClass & " Class Properties and Property Qualifiers"
WScript.Echo "------------------------------------------------------"
i = 1 : j = 1
For Each objClassProperty In objClass.Properties_
WScript.Echo i & ". " & objClassProperty.Name
For Each objPropertyQualifier In objClassProperty.Qualifiers_
If VarType(objPropertyQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & "." & j & ". " & _
objPropertyQualifier.Name & " = " & _
Join(objPropertyQualifier.Value, ",")
Else
strQualifier = i & "." & j & ". " & _
objPropertyQualifier.Name & " = " & _
objPropertyQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
j = j + 1
Next
WScript.Echo
i = i + 1 : j = 1
Next
WScript.Echo
WScript.Echo strClass & " Class Methods and Method Qualifiers"
WScript.Echo "-------------------------------------------------"
i = 1 : j = 1
For Each objClassMethod In objClass.Methods_
WScript.Echo i & ". " & objClassMethod.Name
For Each objMethodQualifier In objClassMethod.Qualifiers_
If VarType(objMethodQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = i & "." & j & ". " & _
objMethodQualifier.Name & " = " & _
Join(objMethodQualifier.Value, ",")
Else
strQualifier = i & "." & j & ". " & _
objMethodQualifier.Name & " = " & _
objMethodQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
j = j + 1
Next
WScript.Echo
i = i + 1 : j = 1
Next
Lists the properties for a specified WMI class.
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Properties"
WScript.Echo "------------------------------"
For Each objClassProperty In objClass.Properties_
WScript.Echo objClassProperty.Name
Next
Lists the class qualifiers for a specified WMI class.
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Qualifiers"
WScript.Echo "------------------------------"
For Each objClassQualifier In objClass.Qualifiers_
If VarType(objClassQualifier.Value) = (vbVariant + vbArray) Then
strQualifier = objClassQualifier.Name & " = " & _
Join(objClassQualifier.Value, ",")
Else
strQualifier = objClassQualifier.Name & " = " & _
objClassQualifier.Value
End If
WScript.Echo strQualifier
strQualifier = ""
Next
Lists only those WMI namespaces immediately below the connected namespace.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root")
Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")
For Each objNameSpace In colNameSpaces
WScript.Echo objNameSpace.Name
Next
Lists all WMI Providers installed in the root\cimv2 namespace.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colWin32Providers = objWMIService.InstancesOf("__Win32Provider")
For Each objWin32Provider In colWin32Providers
WScript.Echo objWin32Provider.Name
Next
Returns a list of WMI settings as configured on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWMISettings = objWMIService.ExecQuery _
("Select * from Win32_WMISetting")
For Each objWMISetting in colWMISettings
Wscript.Echo "Default namespace: " & _
objWMISetting.ASPScriptDefaultNamespace
Wscript.Echo "Backup interval: " & objWMISetting.BackupInterval
Wscript.Echo "Last backup: " & objWMISetting.BackupLastTime
Wscript.Echo "Build version: " & objWMISetting.BuildVersion
Wscript.Echo "Repository directory: " & _
objWMISetting.DatabaseDirectory
Wscript.Echo "Enable events: " & objWMISetting.EnableEvents
Wscript.Echo "High threshold on client objects: " & _
objWMISetting.HighThresholdOnClientObjects
Wscript.Echo "High threshold on events: " & _
objWMISetting.HighThresholdOnEvents
Wscript.Echo "Installation folder: " & _
objWMISetting.InstallationDirectory
Wscript.Echo "Logging folder: " & objWMISetting.LoggingDirectory
Wscript.Echo "Logging level: " & objWMISetting.LoggingLevel
Wscript.Echo "Low threshold on client objects: " & _
objWMISetting.LowThresholdOnClientObjects
Wscript.Echo "Low threshold on events: " & _
objWMISetting.LowThresholdOnEvents
Wscript.Echo "Maximum log file size: " & objWMISetting.MaxLogFileSize
Wscript.Echo "Maximum wait time on client objects: " & _
objWMISetting.MaxWaitOnClientObjects
Wscript.Echo "Maximum wait time on events: " & _
objWMISetting.MaxWaitOnEvents
Wscript.Echo "MOF Self-install folder: " & _
objWMISetting.MofSelfInstallDirectory
For i = 0 to Ubound(objWMISetting.AutorecoverMofs)
Wscript.Echo "Autorecover MOF: " & _
objWMISetting.AutorecoverMofs(i)
Next
Next
Returns the properties and methods for all the WMI Win32 classes (for example, Win32_Service, Win32_Process, Win32_NTEventLog, etc.).
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
intCounter=0
If Left(objClass.Path_.Class,5) = "Win32" Then
For Each Qualifier in objClass.Qualifiers_
If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
intCounter = 1
End If
Next
If x = 0 Then
strComputer = "."
Set objWMIService = GetObject _
("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
Set strClass = objWMIService.Get(objClass.Path_.Class)
Wscript.Echo "PROPERTIES:"
For each strItem in strClass.properties_
Wscript.Echo objClass.Path_.Class & vbTab & strItem.name
Next
Wscript.Echo "METHODS:"
For Each strItem in strClass.methods_
Wscript.Echo objClass.Path_.Class & vbTab & strItem.name
Next
End If
End If
Next
Returns a list of all the WMI classes found in the cimV2 namespace.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
For Each objclass in objWMIService.SubclassesOf()
Wscript.Echo objClass.Path_.Class
Next
Lists the methods for a specified WMI class.
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Set objClass = GetObject("winmgmts:\\" & strComputer & _
"\" & strNameSpace & ":" & strClass)
WScript.Echo strClass & " Class Methods"
WScript.Echo "---------------------------"
For Each objClassMethod In objClass.Methods_
WScript.Echo objClassMethod.Name
Next
Retrieves and displays the textual representation of a WMI class definition in MOF (Managed Object Format) syntax.
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_Service"
Const wbemFlagUseAmendedQualifiers = &h20000
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\" & strNameSpace)
Set objClass = objWMIService.Get(strClass, wbemFlagUseAmendedQualifiers)
strMOF = objClass.GetObjectText_
WScript.Echo strMOF
Retrieve and display the current WMI "Default namespace for scripting" setting.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colWMISettings = objWMIService.InstancesOf("Win32_WMISetting")
For Each objWMISetting in colWMISettings
Wscript.Echo "Default namespace for scripting: " & _
objWMISetting.ASPScriptDefaultNamespace
Next
|