Quick Hits: List All Available WMI Namespaces Using PowerShell

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:

Get-WMIObject

Get-WmiObject -Namespace Root -Class __Namespace | 
Select-Object -Property Name

image

Get-CimInstance

Get-CimInstance -Namespace Root -ClassName __Namespace

image

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

image

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.

Get-WMINamespace -Recurse -Computername DC1 `
-Credential 'rivendell\proxb'

image

That is all to exploring all of the available WMI namespaces on a local or remote system.

You can download the function below. Note it requires PowerShell 3.0 at a minimum.

Download Get-WMINamespace

This entry was posted in powershell and tagged , , , , . Bookmark the permalink.

2 Responses to Quick Hits: List All Available WMI Namespaces Using PowerShell

  1. Pingback: MVP top articles: web performance, SQL injection attacks, WMI namespaces, Operations Manager, PowerShell - Canadian IT Manager's Blog - Site Home - TechNet Blogs

  2. Pingback: Friday Five - May 30, 2014 - The Microsoft MVP Award Program Blog - Site Home - MSDN Blogs

Leave a comment