Windows Management

 Introduction

 VBScript Collection (1)
 VBScript Collection (2)
 WSH (Scripting Host)

 WMI

 ADSI

 PowerShell

 Resource Kit (2003)

 Resource Kit (2000)

 Resource Kit (NT4)

 Miscellaneous


ActiveXperts
Network Monitor


 Product Overview

 Built-in checks:
 
 Brochure (.pdf)

 Manual (.pdf)

 Download (.exe)


Some quotes

 
 Windows&.NET Mag.:
 "Small,smart,handy!"
 
 "Extremely easy to use,
  great value for money!"



  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




Configuring 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

Configuring WMI Settings


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

Enumerating Abstract Classes in WMI


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

Enumerating All WMI Namespaces


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

Enumerating Dynamic Classes in WMI


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

Enumerating Properties, Methods, and Qualifiers for a WMI Class


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

Enumerating Properties for a WMI Class


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

Enumerating Qualifiers for a WMI Class


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

Enumerating WMI Namespaces


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

Enumerating WMI Providers


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

Enumerating WMI Settings


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

Listing the Properties and Methods of the Win32 Classes


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

Listing WMI cimV2 Classes


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

Listing WMI Methods for a Class


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

Retrieving the Definition of a WMI Class in MOF Format


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

Retrieving the Default WMI Namespace


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

Copyright ©1999-2007 ActiveXperts Software. All rights reserved.