Sometimes it is worth knowing what the available namespaces are in WMI, especially if you are looking for a specific class and are not sure where it might be (sometimes it just isn’t under Root\Cimv2). Another reason is just for the sake of exploring the WMI repository to see what exactly is out there.

There are a couple of approaches to this: one using Get-WMIObject and another using Get-CIMInstance. Both ways gets you the same result as shown below:

Note that there are some nested Namespaces below the top level ones that I showed above. We can find these by using the following function I wrote called Get-WMINamespace.

Get-WMINamespace -Recurse

This function also allows you to query remote systems and allows for alternate credentials. By default, it will only show the top level namespaces and if you want to see all of the available nested namespaces, you must use the –Recurse parameter.