MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: ListProperties.vbs[Next]: 7Zip.EXE
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Tips and Tricks->Tools->WMI (Windows Management Instrumentation)->Microsoft WMI Object Queries->DumpWmiObjectInfo.vbs

DumpWmiObjectInfo.vbs

This dumps quite a range of information for a particular class (in this example "Win32_Service") and combines some of the information seen in other example code:

'========================================================================
'=== Modified Listing C in Microsoft's "WMI Scripting Primer: Part 2" ===
'========================================================================

'--- Dump what object? ------------------------------------------------------
strComputer   = "."
strNameSpace  = "root\cimv2"
strClass      = "Win32_Service"

'--- Don't allow use via WSCRIPT! -------------------------------------------
if ucase(mid(wscript.FullName, len(wscript.Path) + 2, 1)) = "W" Then
   wscript.echo "You can't use WSCRIPT on this VB script, use CSCRIPT instead!"
   ExitRc 999
end if



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

Sample Output

Win32_Service Class Qualifiers
------------------------------
1. dynamic = True
2. Locale = 1033
3. provider = CIMWin32
4. SupportsUpdate = True
5. UUID = {8502C4D9-5FBB-11D2-AAC1-006008C78BC7}

Win32_Service Class Properties and Property Qualifiers
------------------------------------------------------
1. AcceptPause
1.1. CIMTYPE = boolean
1.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE
1.3. read = True

2. AcceptStop
2.1. CIMTYPE = boolean
2.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_STOP
2.3. read = True

3. Caption
3.1. CIMTYPE = string
3.2. MaxLen = 64
3.3. read = True

4. CheckPoint
4.1. CIMTYPE = uint32
4.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwCheckPoint
4.3. read = True

5. CreationClassName
5.1. CIM_Key = True
5.2. CIMTYPE = string
5.3. read = True

6. Description
6.1. CIMTYPE = string
6.2. read = True

7. DesktopInteract
7.1. CIMTYPE = boolean
7.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwServiceType|SERVICE_INTERACTIVE_PROCESS
7.3. read = True

8. DisplayName
8.1. CIMTYPE = string
8.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDisplayName
8.3. read = True

9. ErrorControl
9.1. CIMTYPE = string
9.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwErrorControl
9.3. read = True
9.4. ValueMap = Ignore,Normal,Severe,Critical,Unknown

10. ExitCode
10.1. CIMTYPE = uint32
10.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwWin32ExitCode
10.3. read = True

11. InstallDate
11.1. CIMTYPE = datetime
11.2. MappingStrings = MIF.DMTF|ComponentID|001.5
11.3. read = True

12. Name
12.1. CIMTYPE = string
12.2. key = True
12.3. read = True

13. PathName
13.1. CIMTYPE = string
13.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpBinaryPathName
13.3. read = True

14. ProcessId
14.1. CIMTYPE = uint32
14.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS_PROCESS|dwProcessId
14.3. read = True

15. ServiceSpecificExitCode
15.1. CIMTYPE = uint32
15.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwServiceSpecificExitCode
15.3. read = True

16. ServiceType
16.1. CIMTYPE = string
16.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwServiceType
16.3. read = True
16.4. ValueMap = Kernel Driver,File System Driver,Adapter,Recognizer Driver,Own Process,Share Process,Interactive Process

17. Started
17.1. CIMTYPE = boolean
17.2. read = True

18. StartMode
18.1. CIMTYPE = string
18.2. Override = StartMode
18.3. read = True
18.4. ValueMap = Boot,System,Auto,Manual,Disabled

19. StartName
19.1. CIMTYPE = string
19.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpServiceStartName
19.3. read = True

20. State
20.1. CIMTYPE = string
20.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwCurrentState
20.3. read = True
20.4. ValueMap = Stopped,Start Pending,Stop Pending,Running,Continue Pending,Pause Pending,Paused,Unknown

21. Status
21.1. CIMTYPE = string
21.2. MaxLen = 10
21.3. read = True
21.4. ValueMap = OK,Error,Degraded,Unknown,Pred Fail,Starting,Stopping,Service,Stressed,NonRecover,No Contact,Lost Comm

22. SystemCreationClassName
22.1. CIM_Key = True
22.2. CIMTYPE = string
22.3. Propagated = CIM_System.CreationClassName
22.4. read = True

23. SystemName
23.1. CIM_Key = True
23.2. CIMTYPE = string
23.3. Propagated = CIM_System.Name
23.4. read = True

24. TagId
24.1. CIMTYPE = uint32
24.2. MappingStrings = Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwTagId
24.3. read = True

25. WaitHint
25.1. CIMTYPE = uint32
25.2. MappingStrings = Win32API|Service Structures|SERVICE_STATUS|dwWaitHint
25.3. read = True


Win32_Service Class Methods and Method Qualifiers
-------------------------------------------------
1. StartService
1.1. MappingStrings = Win32API|Service Functions|StartService
1.2. Override = StartService
1.3. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

2. StopService
2.1. MappingStrings = Win32API|Service Functions|ControlService|dwControl|SERVICE_CONTROL_STOP
2.2. Override = StopService
2.3. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

3. PauseService
3.1. MappingStrings = Win32API|Service Functions|ControlService|dwControl|SERVICE_CONTROL_PAUSE
3.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

4. ResumeService
4.1. MappingStrings = Win32API|Service Functions|ControlService|dwControl|SERVICE_CONTROL_CONTINUE
4.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

5. InterrogateService
5.1. MappingStrings = Win32API|Service Functions|ControlService|dwControl|SERVICE_CONTROL_INTERROGATE
5.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

6. UserControlService
6.1. MappingStrings = Win32API|Service Functions|CreateService|dwDesiredAccess|SERVICE_USER_DEFINED_CONTROL
6.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

7. Create
7.1. MappingStrings = Win32API|Service Functions|CreateService
7.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

8. Change
8.1. MappingStrings = Win32API|Service Functions|ChangeServiceConfig
8.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

9. ChangeStartMode
9.1. MappingStrings = Service Functions|ChangeServiceConfig|dwStartType
9.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..

10. Delete
10.1. MappingStrings = Win32API|Service Functions|ChangeServiceConfig|DeleteService
10.2. ValueMap = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,..


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006 & 2007 for the Windows SDK (Windows Installer) area.This external link was OK when tested at 27 Dec 2008Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: ListProperties.vbs[Next]: 7Zip.EXE


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday December 27 2008 at 3:15pm
Visit MAKEMSI's Home PageThis external link was OK when tested at 7 Dec 2008

HTML page dated Mon, 29 Jan 2007 00:11:11 GMT
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006 & 2007 for the Windows SDK (Windows Installer) area.This external link was OK when tested at 27 Dec 2008