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然后,变量在仅包含 NameKernelModeTime 属性的表中格式化,该表设置为 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-CimInstanceInvoke-CimMethod

示例 10:使用 CIM 会话获取 CIM 实例

此示例使用 New-CimSession cmdlet 在名为 Server01Server02 的计算机上创建一个 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-CimSessionGet-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 子句。 使用 WQLCQL 查询语言指定 子句。 不要在 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-CimInstanceGet-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 参数的查询语言。 此参数的可接受值为: WQLCQL。 默认值为 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

输入

CimInstance

可以通过管道将 CIM 实例对象传递给此 cmdlet。

输出

CimInstance

此 cmdlet 返回表示 CIM 服务器上 CIM 实例快照的一个或多个 CIM 实例对象。

备注

PowerShell 包含以下别名 Get-CimInstance

  • Windows:
    • gcim

此 cmdlet 仅在 Windows 平台上可用。