类和命名空间
CIM 和 WMI 中有许多可用的类,它们分成多个名称空间。Windows 中最常见(和默认)的命名空间是 root/cimv2
。要查找 righ 类,列出全部或搜索可能很有用。
列出可用的类
你可以在计算机上列出默认命名空间(root/cimv2
)中的所有可用类。
Version >= 3.0
CIM:
Get-CimClass
WMI:
Get-WmiObject -List
搜索类
你可以使用通配符搜索特定的类。例如:查找包含单词 process
的类。
Version >= 3.0
CIM:
> Get-CimClass -ClassName "*Process*"
NameSpace: ROOT/CIMV2
CimClassName CimClassMethods CimClassProperties
------------ --------------- ------------------
Win32_ProcessTrace {} {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}
Win32_ProcessStartTrace {} {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}
Win32_ProcessStopTrace {} {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}
CIM_Process {} {Caption, Description, InstallDate, Name...}
Win32_Process {Create, Terminat... {Caption, Description, InstallDate, Name...}
CIM_Processor {SetPowerState, R... {Caption, Description, InstallDate, Name...}
Win32_Processor {SetPowerState, R... {Caption, Description, InstallDate, Name...}
...
WMI:
Get-WmiObject -List -Class "*Process*"
列出不同命名空间中的类
根命名空间简称为 root
。你可以使用 -NameSpace
参数列出另一个命名空间中的类。
Version >= 3.0
CIM:
> Get-CimClass -Namespace "root/SecurityCenter2"
NameSpace: ROOT/SecurityCenter2
CimClassName CimClassMethods CimClassProperties
------------ --------------- ------------------
....
AntiSpywareProduct {} {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...
AntiVirusProduct {} {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...
FirewallProduct {} {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...
WMI:
Get-WmiObject -Class "__Namespace" -Namespace "root"
列出可用的命名空间
要查找 root
(或其他命名空间)的可用子命名空间,请在 __NAMESPACE
-class 中查询该命名空间的对象。
Version >= 3.0
CIM:
> Get-CimInstance -Namespace "root" -ClassName "__Namespace"
Name PSComputerName
---- --------------
subscription
DEFAULT
CIMV2
msdtc
Cli
SECURITY
HyperVCluster
SecurityCenter2
RSOP
PEH
StandardCimv2
WMI
directory
Policy
virtualization
Interop
Hardware
ServiceModel
SecurityCenter
Microsoft
aspnet
Appv
WMI:
Get-WmiObject -List -Namespace "root"