Get-CimInstance

從 CIM 伺服器取得 類別的 CIM 實例。

Syntax

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>]

Description

此 Cmdlet 僅適用於 Windows 平臺。

Cmdlet Get-CimInstance 會從 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 實例

此範例會在記憶體中為名為 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

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 在 參數的值中包含 關鍵詞。

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 會使用取得 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 平臺。