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 平台上可用。
Get-CimInstance
cmdlet 从 CIM 服务器获取类的 CIM 实例。 可以指定此 cmdlet 的类名或查询。 此 cmdlet 返回一个或多个 CIM 实例对象,这些对象表示 CIM 服务器上存在的 CIM 实例的快照。
如果未指定 InputObject 参数,则 cmdlet 的工作方式如下:
- 如果既未指定 ComputerName 参数,也没有指定 CimSession 参数,则此 cmdlet 使用组件对象模型 (COM) 会话在本地 Windows Management Instrumentation (WMI) 上运行。
- 如果指定了 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 服务器上 根 命名空间下的命名空间列表。
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 实例
此示例使用键属性 @{ "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 的远程计算机中检索名为 Win32_ComputerSystem 的类的 CIM 实例,Server02。
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。
类型: | CimSession[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-ClassName
指定要为其检索 CIM 实例的 CIM 类的名称。 可以使用 Tab 补全浏览类列表,因为 PowerShell 从本地 WMI 服务器获取类列表,以提供类名列表。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-ComputerName
指定要在其中运行 CIM作的计算机。 可以指定完全限定的域名(FQDN)、NetBIOS 名称或 IP 地址。 如果未指定此参数,cmdlet 将使用组件对象模型(COM)在本地计算机上执行该作。
如果指定此参数,cmdlet 将使用 WsMan 协议创建到指定计算机的临时会话。
如果在同一台计算机上执行了多个作,请使用 CIM 会话进行连接以提高性能。
类型: | String[] |
别名: | CN, ServerName |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Filter
指定要用作筛选器的 where 子句。 在 WQL 或 CQL 查询语言中指定子句。 不要在参数的值中包含 WHERE
关键字。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-InputObject
指定要用作输入的 CIM 实例对象。
如果已使用 CIM 实例对象,则可以使用此参数传递 CIM 实例对象,以便从 CIM 服务器获取最新快照。 将 CIM 实例对象作为输入传递时,Get-CimInstance
使用 get CIM作(而不是枚举或查询作)从服务器返回对象。 使用 get CIM作比检索所有实例,然后筛选它们更有效。
InputObject 参数不会枚举集合。 如果传递集合,则会引发错误。 使用集合时,通过管道传递输入来枚举值。
如果 CIM 类未实现 get作,则指定 InputObject 参数将返回错误。
类型: | CimInstance |
别名: | CimInstance |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-KeyOnly
指示仅返回填充了键属性的对象。 指定 KeyOnly 参数可减少通过网络传输的数据量。
使用 KeyOnly 参数仅返回一小部分对象,该对象可用于其他作,例如 Set-CimInstance
或 Get-CimAssociatedInstance
cmdlet。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Namespace
指定 CIM 类的命名空间。
默认命名空间 root/cimv2。 可以使用选项卡完成浏览命名空间列表,因为 PowerShell 从本地 WMI 服务器获取命名空间列表以提供命名空间列表。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-OperationTimeoutSec
指定 cmdlet 等待计算机响应的时间量。 默认情况下,此参数的值为 0,这意味着 cmdlet 使用服务器的默认超时值。
如果 OperationTimeoutSec 参数设置为小于可靠连接重试超时 3 分钟的值,则超过 OperationTimeoutSec 参数的值的网络故障不可恢复,因为服务器上的作在客户端重新连接之前超时。
类型: | UInt32 |
别名: | OT |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Property
指定要检索的一组实例属性。 如果需要减小在内存中或通过网络返回的对象的大小,请使用此参数。 返回的对象还包含键属性,即使尚未使用 Property 参数列出它们。 类的其他属性存在,但它们未填充。
类型: | String[] |
别名: | SelectProperties |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Query
指定要在 CIM 服务器上运行的查询。 如果指定的值包含双引号 "
、单引号 '
或反斜杠 \
,则必须将这些字符作为反斜杠字符的前缀来转义这些字符。 如果指定的值使用 WQL LIKE 运算符,则必须将以下字符括在方括号 []
中:百分比 %
、下划线 _
或左方括号 [
来转义以下字符。
不能使用元数据查询来检索类或事件查询的列表。 若要检索类列表,请使用 Get-CimClass
cmdlet。 若要检索事件查询,请使用 Register-CimIndicationEvent
cmdlet。
可以使用 QueryDialect 参数指定查询方言。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-QueryDialect
指定用于 Query 参数的查询语言。 此参数的可接受值为:WQL 或 CQL。 默认值为 WQL 。
类型: | String |
Position: | Named |
默认值: | 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 会话一起使用,或者指定使用 WSMan 创建 CIM 会话的 ComputerName 参数时。 如果在未指定 ComputerName 参数的情况下指定此参数,或者指定使用 DCOM 协议创建的 CIM 会话,则会收到错误,因为 DCOM 协议不支持 ResourceURI 参数。
如果同时指定了 ResourceUri 参数和 Filter 参数,则忽略 Filter 参数。
类型: | Uri |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Shallow
指示返回类的实例,而不包括任何子类的实例。 默认情况下,cmdlet 返回类及其子类的实例。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将 CIM 实例对象传递给此 cmdlet。
输出
此 cmdlet 返回一个或多个 CIM 实例对象,这些对象表示 CIM 服务器上的 CIM 实例的快照。
备注
PowerShell 包含以下 Get-CimInstance
别名:
- 窗户:
gcim
此 cmdlet 仅在 Windows 平台上可用。