Get-CimInstance
从 CIM 服务器获取类的 CIM 实例。
语法
Get-CimInstance
[-ClassName] <String>
[-ComputerName <String[]>]
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
-ResourceUri <Uri>
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-Query <String>
[-QueryDialect <String>]
[-Shallow]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ClassName] <String>
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-QueryDialect <String>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[<CommonParameters>]
Get-CimInstance
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-OperationTimeoutSec <UInt32>]
[-InputObject] <CimInstance>
[<CommonParameters>]
Get-CimInstance
-ResourceUri <Uri>
[-ComputerName <String[]>]
[-KeyOnly]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-Shallow]
[-Filter <String>]
[-Property <String[]>]
[<CommonParameters>]
Get-CimInstance
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
-Query <String>
[-QueryDialect <String>]
[-Shallow]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
cmdlet Get-CimInstance
从 CIM 服务器获取类的 CIM 实例。 可以为此 cmdlet 指定类名或查询。 此 cmdlet 返回一个或多个 CIM 实例对象,这些对象表示 CIM 服务器上存在的 CIM 实例快照。
如果未指定 InputObject 参数,则 cmdlet 通过以下方式之一工作:
- 如果未指定 ComputerName 参数和 CimSession 参数,则此 cmdlet 适用于本地 Windows Management Instrumentation (WMI) ,使用组件对象模型 (COM) 会话。
- 如果指定 了 ComputerName 参数或 CimSession 参数,则此 cmdlet 适用于 由 ComputerName 参数或 CimSession 参数指定的 CIM 服务器。
如果指定 了 InputObject 参数,则 cmdlet 通过以下方式之一工作:
- 如果未指定 ComputerName 参数和 CimSession 参数,则此 cmdlet 使用输入对象中的 CIM 会话或计算机名称。
- 如果指定 了 ComputerName 参数或 CimSession 参数,则此 cmdlet 使用 CimSession 参数值或 ComputerName 参数值。
示例
示例 1:获取指定类的 CIM 实例
此示例检索名为 Win32_Process 的类的 CIM 实例。
Get-CimInstance -ClassName Win32_Process
示例 2:从 WMI 服务器获取命名空间列表
此示例检索 WMI 服务器上的 Root 命名空间下的命名空间列表。
Get-CimInstance -Namespace root -ClassName __Namespace
示例 3:获取使用查询筛选的类的实例
此示例使用 Query 参数指定的查询检索以名为 Win32_Process 类的字母 P 开头的所有 CIM 实例。
Get-CimInstance -Query "SELECT * from Win32_Process WHERE name LIKE 'P%'"
示例 4:获取使用类名和筛选器表达式筛选的类的实例
此示例使用 Filter 参数检索以名为 Win32_Process 类的字母 P 开头的所有 CIM 实例。
Get-CimInstance -ClassName Win32_Process -Filter "Name like 'P%'"
示例 5:获取仅填充了键属性的 CIM 实例
此示例使用 key 属性@{ "Handle"=0 }
在内存中为名为 Win32_Process 的类创建新的 CIM 实例,并将其存储在名为 的$x
变量中。 变量作为 CIM 实例 Get-CimInstance
传递到 cmdlet 以获取特定实例。
$x = New-CimInstance -ClassName Win32_Process -Namespace root\cimv2 -Property @{ "Handle"=0 } -Key Handle -ClientOnly
Get-CimInstance -CimInstance $x
示例 6:检索并重用 CIM 实例
此示例获取名为 Win32_Process 的类的 CIM 实例,并将其存储在 变量 $x
和 $y
中。 $x
然后,变量在仅包含 Name 和 KernelModeTime 属性的表中格式化,该表设置为 AutoSize。
$x,$y = Get-CimInstance -ClassName Win32_Process
$x | Format-Table -Property Name,KernelModeTime -AutoSize
Name KernelModeTime
---- --------------
System Idle Process 157238797968750
示例 7:从远程计算机获取 CIM 实例
此示例从名为 Server01 和 Server02 的远程计算机检索名为 Win32_ComputerSystem 的类的 CIM 实例。
Get-CimInstance -ClassName Win32_ComputerSystem -ComputerName Server01,Server02
示例 8:仅获取键属性,而不是获取所有属性
此示例仅检索键属性,这会减小对象和网络流量的大小。
$x = Get-CimInstance -Class Win32_Process -KeyOnly
$x | Invoke-CimMethod -MethodName GetOwner
示例 9:仅获取一部分属性,而不是所有属性
此示例仅检索属性的子集,这会减小对象和网络流量的大小。
Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x = Get-CimInstance -Class Win32_Process -Property Name,KernelModeTime
$x | Invoke-CimMethod -MethodName GetOwner
使用 Property 参数检索的实例可用于执行其他 CIM 操作,例如 Set-CimInstance
或 Invoke-CimMethod
。
示例 10:使用 CIM 会话获取 CIM 实例
此示例使用 New-CimSession
cmdlet 在名为 Server01 和 Server02 的计算机上创建一个 CIM 会话,并将会话信息存储在名为 的$s
变量中。 然后,通过使用 CimSession 参数将变量的内容传递给 Get-CimInstance
,以获取名为 Win32_ComputerSystem 类的 CIM 实例。
$s = New-CimSession -ComputerName Server01,Server02
Get-CimInstance -ClassName Win32_ComputerSystem -CimSession $s
参数
-CimSession
指定要用于此 cmdlet 的 CIM 会话。 输入包含 CIM 会话的变量或用于创建或获取 CIM 会话的命令,例如 New-CimSession
或 Get-CimSession
cmdlet。 有关详细信息,请参阅 about_CimSession。
Type: | CimSession[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClassName
指定要检索其 CIM 实例的 CIM 类的名称。 可以使用选项卡补全来浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表,以提供类名列表。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ComputerName
指定要运行 CIM 操作的计算机。 可以 (FQDN) 指定完全限定的域名、NetBIOS 名称或 IP 地址。 如果未指定此参数,cmdlet 将使用组件对象模型 (COM) 在本地计算机上执行操作。
如果指定此参数,cmdlet 将使用 WsMan 协议创建与指定计算机的临时会话。
如果在同一台计算机上执行多个操作,请使用 CIM 会话进行连接以提高性能。
Type: | String[] |
Aliases: | CN, ServerName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Filter
指定要用作筛选器的 where 子句。 使用 WQL 或 CQL 查询语言指定 子句。 不要在 WHERE
参数的值中包含关键字 (keyword) 。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
指定要用作输入的 CIM 实例对象。
如果已在使用 CIM 实例对象,则可以使用此参数传递 CIM 实例对象,以便从 CIM 服务器获取最新的快照。 将 CIM 实例对象作为输入传递时, Get-CimInstance
使用 get CIM 操作而不是枚举或查询操作从服务器返回对象。 使用 get CIM 操作比检索所有实例然后筛选它们更高效。
InputObject 参数不枚举集合。 如果传递集合,则会引发错误。 使用集合时,通过管道传递输入以枚举值。
如果 CIM 类未实现 get 操作,则指定 InputObject 参数将返回错误。
Type: | CimInstance |
Aliases: | CimInstance |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-KeyOnly
指示仅返回填充了键属性的对象。 指定 KeyOnly 参数可以减少通过网络传输的数据量。
使用 KeyOnly 参数仅返回对象的一小部分,这些部分可用于其他操作,例如 Set-CimInstance
或 Get-CimAssociatedInstance
cmdlet。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
指定 CIM 类的命名空间。
默认命名空间为 root/cimv2。 可以使用选项卡补全来浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OperationTimeoutSec
指定 cmdlet 等待计算机响应的时间量。 默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。
如果将 OperationTimeoutSec 参数设置为小于 3 分钟可靠连接重试超时的值,则持续超过 OperationTimeoutSec 参数值的网络故障不可恢复,因为服务器上的操作在客户端重新连接之前会超时。
Type: | UInt32 |
Aliases: | OT |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
指定要检索的一组实例属性。 如果需要减小在内存中或通过网络返回的对象的大小,请使用此参数。 返回的对象还包含键属性,即使你尚未使用 Property 参数列出它们。 类的其他属性存在,但未填充。
Type: | String[] |
Aliases: | SelectProperties |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Query
指定要在 CIM 服务器上运行的查询。 如果指定的值包含双引号 "
、单引号 '
或反斜杠 \
,则必须通过为这些字符添加反斜杠字符前缀来转义这些字符。 如果指定的值使用 WQL LIKE 运算符,则必须通过将以下字符括在方括号 []
中来转义这些字符:百分比 %
、下划线 _
或左方括号 [
。
不能使用元数据查询来检索类列表或事件查询。 若要检索类列表,请使用 Get-CimClass
cmdlet。 若要检索事件查询,请使用 Register-CimIndicationEvent
cmdlet。
可以使用 QueryDialect 参数指定查询方言。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-QueryDialect
指定用于 Query 参数的查询语言。 此参数的可接受值为: WQL 或 CQL。 默认值为 WQL。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ResourceUri
指定资源类或实例的资源统一资源标识符 (URI) 。 URI 用于标识计算机上特定类型的资源,例如磁盘或进程。
URI 由前缀和指向资源的路径组成。 例如:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings
默认情况下,如果未指定此参数,则使用 DMTF 标准资源 URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
,并将类名追加到其中。
ResourceURI 只能与使用 WSMan 协议创建的 CIM 会话一起使用,或者在指定 ComputerName 参数(使用 WSMan 创建 CIM 会话)时使用。 如果在未指定 ComputerName 参数的情况下指定此参数,或者指定使用 DCOM 协议创建的 CIM 会话,则会收到错误,因为 DCOM 协议不支持 ResourceURI 参数。
如果同时指定 了 ResourceUri 参数和 Filter 参数,则忽略 Filter 参数。
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Shallow
指示返回类的实例,而不包括任何子类的实例。 默认情况下, cmdlet 返回类及其子类的实例。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以通过管道将 CIM 实例对象传递给此 cmdlet。
输出
此 cmdlet 返回表示 CIM 服务器上 CIM 实例快照的一个或多个 CIM 实例对象。
备注
PowerShell 包含以下别名 Get-CimInstance
:
- Windows:
gcim
此 cmdlet 仅在 Windows 平台上可用。