Sometimes you are just bored. And all you really want to do is list out all of the cim namespaces on your machine. Cool right? YEA. So here is a powershell script which produces output similar to the "tree" command, except for all of your cim namespaces and classes. This should help figure out what actually exists. This should probably be run as administrator, depends on which stuff you are trying to look at. Anyway, here it is!

                            
#
# Generate a tree from cim namespaces and classes
#
function Get-CimTree
{
    [CmdLetBinding()]
    param
    (
        [Parameter(Mandatory=$false, Position=0)][string]$NameSpace = 'Root',
        [switch]$IncludeClasses = $false
    )
    process
    {
        # Constants
        $tbend = '├'
        $cbend = '└'
        $pipe = '│'
        $flat = '─'
        $tabWidth = 4

        # Function to write a namespace. Takes the tabs stack, and the namespace name
        function writeNamespace($tabStack, $ns)
        {
            # Write the list of tabs
            function writeTabStack($ts)
            {
                $output = ''
                for($t = 0; $t -lt $ts.Length; $t++)
                {
                    $val = $ts[$t]
                    
                    # Transform previous tabs, to make our tree look more like a tree
                    if($t -lt $ts.Length - 1)
                    {
                        switch($val)
                        {
                            2 { $val = 1 }
                            3 { $val = 0 } 
                        }
                    }

                    # Get the starting and sperator characters for the tab
                    switch($val)
                    {
                        0 { $start = ' '; $sep = ' ' }
                        1 { $start = $pipe; $sep = ' ' }
                        2 { $start = $tbend; $sep = $flat }
                        3 { $start = $cbend; $sep = $flat }
                    }

                    # Add to the outptu line
                    $output += $start + ($sep * ($tabWidth - 1))
                }

                Write-Host $output -NoNewline
            }

            # Write the tab stack
            writeTabStack $tabStack

            # Write the namespace name
            Write-Host $ns

            $classes = @()

            # Get all of the classes in the namespace if we need them
            if($IncludeClasses)
            {
                $classes = Get-CimClass -Namespace $ns
            }

            # Get all of the namespaces in the current namespace
            $namespaces = Get-CimInstance -Namespace $ns -ClassName __NameSpace -ErrorAction Ignore

            # If the query failed, just continue
            if(-not $namespaces)
            {
                return
            }
           
            for($i = 0; $i -lt $namespaces.Length; $i++)
            {
                # If it's the last element, use an angled branch
                $tsAdd = 2
                if($i -eq $namespaces.Length -1 -and $classes.Length -eq 0)
                {
                    $tsAdd = 3
                }

                writeNamespace -tabStack ($tabStack + $tsAdd) -ns ($ns + '/' + $namespaces[$i].Name)
            }

            # Write all of the classes
            for($i = 0; $i -lt $classes.Length; $i++)
            {
                # If it's the last element, use an angled branch
                $tsAdd = 2
                if($i -eq $classes.Length - 1)
                {
                    $tsAdd = 3
                }

                writeTabStack ($tabStack + $tsAdd)
                Write-Host $classes[$i].CimClassName
            }
        }

        # Write the initial namespace to kick things off
        writeNamespace -tabStack @() -ns $NameSpace
    }
}
                            
                        
When you run this thing, you will get output in this form:

Root
├───Root/subscription
├───Root/DEFAULT
├───Root/CIMV2
│   ├───Root/CIMV2/mdm
│   │   ├───Root/CIMV2/mdm/dmmap
│   │   └───Root/CIMV2/mdm/MS_409
│   ├───Root/CIMV2/Security
│   │   ├───Root/CIMV2/Security/MicrosoftTpm
│   │   └───Root/CIMV2/Security/MicrosoftVolumeEncryption
│   ├───Root/CIMV2/power
│   ├───Root/CIMV2/ms_409
│   ├───Root/CIMV2/TerminalServices
│   └───Root/CIMV2/Applications
├───Root/msdtc
├───Root/Cli
├───Root/SECURITY
├───Root/HyperVCluster
├───Root/SecurityCenter2
├───Root/RSOP
│   └───Root/RSOP/Computer
├───Root/PEH
├───Root/StandardCimv2
│   ├───Root/StandardCimv2/MS_409
│   └───Root/StandardCimv2/embedded
├───Root/WMI
├───Root/directory
├───Root/Policy
├───Root/virtualization
├───Root/Interop
├───Root/Hardware
├───Root/ServiceModel
├───Root/SecurityCenter
├───Root/Microsoft
│   ├───Root/Microsoft/HomeNet
│   ├───Root/Microsoft/protectionManagement
│   ├───Root/Microsoft/Windows
│   │   ├───Root/Microsoft/Windows/RemoteAccess
│   │   ├───Root/Microsoft/Windows/Dns
│   │   ├───Root/Microsoft/Windows/Powershellv3
│   │   ├───Root/Microsoft/Windows/Hgs
│   │   ├───Root/Microsoft/Windows/WindowsUpdate
│   │   ├───Root/Microsoft/Windows/DeviceGuard
│   │   ├───Root/Microsoft/Windows/TaskScheduler
│   │   ├───Root/Microsoft/Windows/DesiredStateConfigurationProxy
│   │   ├───Root/Microsoft/Windows/SmbWitness
│   │   ├───Root/Microsoft/Windows/Wdac
│   │   ├───Root/Microsoft/Windows/winrm
│   │   ├───Root/Microsoft/Windows/AppBackgroundTask
│   │   ├───Root/Microsoft/Windows/PS_MMAgent
│   │   ├───Root/Microsoft/Windows/Storage
│   │   │   ├───Root/Microsoft/Windows/Storage/PT
│   │   │   ├───Root/Microsoft/Windows/Storage/MS_409
│   │   │   └───Root/Microsoft/Windows/Storage/Providers_v2
│   │   ├───Root/Microsoft/Windows/HardwareManagement
│   │   ├───Root/Microsoft/Windows/SMB
│   │   ├───Root/Microsoft/Windows/EventTracingManagement
│   │   ├───Root/Microsoft/Windows/DesiredStateConfiguration
│   │   ├───Root/Microsoft/Windows/CI
│   │   └───Root/Microsoft/Windows/Defender
│   ├───Root/Microsoft/SecurityClient
│   └───Root/Microsoft/Uev
├───Root/aspnet
└───Root/Appv

Gosh I know, the code is a total mess... That's because I am really hungry. You can also print out all of the classes, but the output gets HUGE. To be honest, the whole reason for this, is that I needed to figure out how to mount an iso to a folder from the command line, and I hate constantly searching online for these things. Its way easier to find out what is really going on when you can see the whole tree. Also trees are cool...