Show-WmiClass

Show-WmiClass

  • Comments 3

Here is a script that I use to show WMI classes. I think you'll find it useful. There is an example after the script:

############################################################################
# Show-WmiClass - Show WMI classes
# Author: Microsoft
# Version: 1.0
# NOTE: Notice that this is uses the verb SHOW vs GET. That is because it
# combines a Getter with a format. SHOW was added as a new "official
# verb to deal with just this case.
############################################################################
param(
$Name = ".",
$NameSpace = "root\cimv2",
[Switch]$Refresh=$false
)

# Getting a list of classes can be expensive and the list changes infrequently.
# This makes it a good candidate for caching.

$CacheDir = Join-path $env:Temp "WMIClasses"
$CacheFile = Join-Path $CacheDir ($Namespace.Replace("\","-") + ".csv")
if (!(Test-Path $CacheDir))
{
$null = New-Item -Type Directory -Force $CacheDir
}

if (!(Test-Path $CacheFile) -Or $Refresh)
{
Get-WmiObject -List -Namespace:$Namespace |
Sort -Property Name |
Select -Property Name |
Export-csv -Path $CacheFile -Force
}

Import-csv -Path $CacheFile |
where {$_.Name -match $Name} |
Format-Wide -AutoSize
###### EOF ###########

Example


PS> show-wmiclass account


MSFT_NetBadAccount Win32_Account Win32_AccountSID
Win32_SystemAccount Win32_UserAccount


PS> show-wmiclass account -namespace root\cimv2\terminalservices


Win32_TSAccount


PS> show-wmiclass -namespace root\cimv2\terminalservices


__AbsoluteTimerInstruction __ACE
__AggregateEvent __ClassCreationEvent
__ClassDeletionEvent __ClassModificationEvent
__ClassOperationEvent __ClassProviderRegistration
__ConsumerFailureEvent __Event
__EventConsumer __EventConsumerProviderRegistration
__EventDroppedEvent __EventFilter
__EventGenerator __EventProviderRegistration
__EventQueueOverflowEvent __ExtendedStatus
__ExtrinsicEvent __FilterToConsumerBinding
__IndicationRelated __InstanceCreationEvent
__InstanceDeletionEvent __InstanceModificationEvent
__InstanceOperationEvent __InstanceProviderRegistration
__IntervalTimerInstruction __MethodInvocationEvent
__MethodProviderRegistration __NAMESPACE
__NamespaceCreationEvent __NamespaceDeletionEvent
__NamespaceModificationEvent __NamespaceOperationEvent
__NotifyStatus __NTLMUser9X
__ObjectProviderRegistration __PARAMETERS
__PropertyProviderRegistration __Provider
__ProviderRegistration __QOSFailureEvent
__SecurityDescriptor __SecurityRelatedClass
__SystemClass __SystemEvent
__SystemSecurity __thisNAMESPACE
__TimerEvent __TimerInstruction
__TimerNextFiring __Trustee
__Win32Provider CIM_ElementSetting
CIM_LogicalElement CIM_ManagedSystemElement
CIM_Setting Win32_Terminal
Win32_TerminalError Win32_TerminalServiceSetting
Win32_TerminalServiceSettingError Win32_TerminalServiceToSetting
Win32_TerminalSetting Win32_TerminalTerminalSetting
Win32_TSAccount Win32_TSClientSetting
Win32_TSEnvironmentSetting Win32_TSGeneralSetting
Win32_TSLogonSetting Win32_TSNetworkAdapterListSetting
Win32_TSNetworkAdapterSetting Win32_TSPermissionsSetting
Win32_TSRemoteControlSetting Win32_TSSessionDirectory
Win32_TSSessionDirectorySetting Win32_TSSessionSetting


PS>

Enjoy!

Jeffrey Snover [MSFT]
Windows Management Partner Architect
Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell
Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

 

Attachment: Show-wmiclass.ps1
Leave a Comment
  • Please add 2 and 6 and type the answer here:
  • Post
  • PingBack from http://msdnrss.thecoderblogs.com/2007/08/31/

  • Nice script, thanks for sharing. It's worth noting (and it might save someone a headache) that in your examples, the namespace "root\cimv2\terminalservices" is new in Vista and Server 2008.  In Vista and Server 2003, the TS classes are found under "root\cimv2".

  • Thanks for the great script. I have gleaned a bunch of scripting gems from this one!--like examples of using Join-Path and Test-Path.

Page 1 of 1 (3 items)