Microsoft KB Archive/246204

{|
 * width="100%"|

HOWTO: Enumerate Windows Management Instrumentation Namespaces

 * }

Q246204

-

The information in this article applies to:


 * Windows Management Instrumentation, versions 1.0, 1.1, 1.5

-

SUMMARY
You cannot enumerate all the Windows Management Instrumentation (WMI) namespaces on a computer by using a single query in a single namespace.

MORE INFORMATION
In order to enumerate all the namespaces, you must first connect to the "root" namespace, query for all the "__NAMESPACE" instances, and for each instance recursively repeat this process.

The following Microsoft Visual Basic code snippet is a recursive subroutine that enumerates the namespaces under the namespace tree rooted at the namespace specified in the parameter.

Sub PrintNamespaces(namespace As String)

Debug.Print namespace Set locator = CreateObject("WbemScripting.SWbemLocator") Set wmi = locator.ConnectServer(".", namespace) For Each obj In wmi.InstancesOf("__NAMESPACE") PrintNamespaces namespace + "\" + obj.Name Next

End Sub

To enumerate all of the namespaces on the computer, call the subroutine with "root" as the parameter:

PrintNamespaces "root" Additional query words: wmi wbem namespace enumerate

Keywords : kbsms kbWMI100 _IK

Issue type : kbhowto

Technology : kbWMISearch kbAudDeveloper kbWMI100 kbWMI110 kbWMI150