当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 获取 CimInstance (CimCmdlet)

作者:精品下载站 日期:2024-12-14 02:26:00 浏览:15 分类:玩电脑

获取 CimInstance (CimCmdlet)


Get-CimInstance

模块 :CimCmdlets

从 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 平台。

Get-CimInstance cmdlet 从 CIM 服务器获取类的 CIM 实例。您可以为此 cmdlet 指定类名称或查询。此 cmdlet 返回一个或多个 CIM 实例对象,表示 CIM 服务器上存在的 CIM 实例的快照。

如果未指定 InputObject 参数,则 cmdlet 按以下方式之一工作:

  • 如果既未指定 ComputerName 参数,也未指定 CimSession 参数,则此 cmdlet 将在使用组件对象模型 (COM) 会话的本地 Windows Management Instrumentation (WMI) 上运行。
  • 如果指定了 ComputerName 参数或 CimSession 参数,则此 cmdlet 将针对由 ComputerName 参数或 ComputerName 指定的 CIM 服务器运行。CimSession 参数。

如果指定了 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 实例

此示例在内存中为名为 Win32_Process 的类(具有键属性 @{ "Handle"=0 })创建一个新的 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 实例

此示例从名为 Server01Server02 的远程计算机检索名为 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。

类型 :

CimSession[]

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-ClassName

指定要为其检索 CIM 实例的 CIM 类的名称。您可以使用制表符补全来浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表以提供类名称列表。

类型 :

String

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-ComputerName

指定要运行 CIM 操作的计算机。您可以指定完全限定域名 (FQDN)、NetBIOS 名称或 IP 地址。如果不指定此参数,cmdlet 将使用组件对象模型 (COM) 在本地计算机上执行操作。

如果指定此参数,cmdlet 将使用 WsMan 协议创建到指定计算机的临时会话。

如果在同一台计算机上执行多个操作,请使用 CIM 会话进行连接以获得更好的性能。

类型 :

String[]

别名:

CN, ServerName

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Filter

指定用作过滤器的 where 子句。使用 WQLCQL 查询语言指定子句。请勿在参数值中包含 WHERE 关键字。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-InputObject

指定用作输入的 CIM 实例对象。

如果您已经在使用 CIM 实例对象,则可以使用此参数传递 CIM 实例对象,以便从 CIM 服务器获取最新快照。当您将 CIM 实例对象作为输入传递时,Get-CimInstance 使用获取 CIM 操作(而不是枚举或查询操作)从服务器返回该对象。使用 get CIM 操作比检索所有实例然后过滤它们更有效。

InputObject 参数不会枚举集合。如果传递了集合,则会引发错误。使用集合时,通过管道输入以枚举值。

如果 CIM 类未实现 get 操作,则指定 InputObject 参数将返回错误。

类型 :

CimInstance

别名:

CimInstance

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-KeyOnly

指示仅返回已填充关键属性的对象。指定KeyOnly 参数可减少通过网络传输的数据量。

使用 KeyOnly 参数仅返回对象的一小部分,该部分可用于其他操作,例如 Set-CimInstanceGet-CimAssociatedInstance cmdlet。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Namespace

指定 CIM 类的命名空间。

默认命名空间是root/cimv2。您可以使用制表符补全来浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表来提供命名空间列表。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-OperationTimeoutSec

指定 cmdlet 等待计算机响应的时间。默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。

如果 OperationTimeoutSec 参数设置为小于 3 分钟的稳健连接重试超时的值,则持续时间超过 OperationTimeoutSec 参数值的网络故障将无法恢复,因为在客户端重新连接之前服务器上的操作超时。

类型 :

UInt32

别名:

OT

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Property

指定要检索的一组实例属性。当您需要减小内存中或通过网络返回的对象的大小时,请使用此参数。返回的对象还包含关键属性,即使您没有使用 Property 参数列出它们。该类的其他属性存在,但未填充。

类型 :

String[]

别名:

SelectProperties

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Query

指定要在 CIM 服务器上运行的查询。如果指定的值包含双引号 "、单引号 ' 或反斜杠 \,则必须通过在这些字符前加上反斜杠来转义这些字符如果指定的值使用 WQL LIKE 运算符,则必须通过将以下字符括在方括号 [] 中来对它们进行转义:% %。 >、下划线 _ 或左方括号 [

您不能使用元数据查询来检索类列表或事件查询。要检索类列表,请使用 Get-CimClass cmdlet。要检索事件查询,请使用 Register-CimInductionEvent cmdlet。

您可以使用QueryDialect参数指定查询方言。

类型 :

String

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-QueryDialect

指定用于查询参数的查询语言。此参数可接受的值为:WQLCQL。默认值为WQL

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

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 参数。

    类型 :

    乌里

    位置:

    命名

    默认值:

    None

    必需的:

    False

    接受管道输入:

    True

    接受通配符:

    False

    -Shallow

    指示返回类的实例,不包括任何子类的实例。默认情况下,cmdlet 返回类及其子类的实例。

    类型 :

    SwitchParameter

    位置:

    命名

    默认值:

    None

    必需的:

    False

    接受管道输入:

    False

    接受通配符:

    False

    输入

    CimInstance

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

    输出

    CimInstance

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

    笔记

    PowerShell 包含 Get-CimInstance 的以下别名:

    • Windows:

        gcim

      此 cmdlet 仅在 Windows 平台上可用。

      您需要 登录账户 后才能发表评论

      取消回复欢迎 发表评论:

      关灯