\
Introduction
WMI (Windows Management Instrumentation)
Microsoft WMI Object Queries
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:
'==========================================================================
'======= Listing C in Microsoft's "WMI Scripting Primer: Part 2" ==========
'==========================================================================
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
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
20.5. write = True
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. Static = True
7.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,..
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,..
11. GetSecurityDescriptor
11.1. implemented = True
11.2. Privileges = SeSecurityPrivilege
11.3. ValueMap = 0,2,8,9,21,..
12. SetSecurityDescriptor
12.1. implemented = True
12.2. Privileges = SeSecurityPrivilege
12.3. ValueMap = 0,2,8,9,21,..