共用方式為


Invoke-CimMethod

叫用 CIM 類別的方法。

Syntax

Invoke-CimMethod
      [-ClassName] <String>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ClassName] <String>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-ResourceUri <Uri>]
      [-InputObject] <CimInstance>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -ResourceUri <Uri>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      [-CimClass] <CimClass>
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      [-ComputerName <String[]>]
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CimMethod
      -Query <String>
      [-QueryDialect <String>]
      -CimSession <CimSession[]>
      [[-Arguments] <IDictionary>]
      [-MethodName] <String>
      [-Namespace <String>]
      [-OperationTimeoutSec <UInt32>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

此 Cmdlet 僅適用於 Windows 平臺。

Cmdlet 會Invoke-CimMethod使用 Arguments 參數所指定的名稱/值組,叫用 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:叫用方法

這個範例會叫用 Win32_Process 類別的 Terminate 方法。

Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"

範例 2:使用 CIM 實例物件叫用方法

此範例會擷取 CIM 實例物件,並使用 Cmdlet 將它儲存在名為 $xGet-CimInstance 變數中。 變數的內容接著會當做 Cmdlet 的 Invoke-CimMethod InputObject 使用。 會針對 CimInstance 叫用 GetOwner 方法。

$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner

範例 3:使用自變數叫用靜態方法

此範例會使用 Arguments 參數叫用名為 的 Create 方法。

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
  CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}

範例 4:客戶端驗證

這個範例會將 CimClass 物件傳遞Invoke-CimMethod,以執行 xyz 方法的客戶端驗證。

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }

參數

-Arguments

指定要傳遞至所呼叫方法的參數。 將此參數的值指定為儲存在哈希表中的名稱/值組。 輸入的值順序並不重要。

Type:IDictionary
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CimClass

指定 CIM 類別物件,代表伺服器上的 CIM 類別定義。 叫用 類別的靜態方法時,請使用此參數。

您可以使用 Get-CimClass Cmdlet 從伺服器擷取類別定義。

使用此參數會導致更好的客戶端架構驗證。

Type:CimClass
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimSession

使用指定的 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 類別的名稱。 此參數僅用於靜態方法。 您可以使用索引標籤自動完成來瀏覽類別清單,因為 PowerShell 會從本機 WMI 伺服器取得類別清單,以提供類別名稱清單。

Type:String
Aliases:Class
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

指定您要執行 CIM 作業的電腦名稱。 您可以指定完整功能變數名稱 (FQDN)、NetBIOS 名稱或IP位址。

使用此參數時,Cmdlet 會使用 WsMan 通訊協定,對指定的計算機建立暫存會話。 否則,Cmdlet 會使用元件物件模型 (COM) 在本機計算機上執行作業。

連線 在同一部計算機上執行多個作業時,使用 CIM 會話來提升效能。

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定要作為叫用方法之輸入的 CIM 實例物件。 此參數只能用來叫用實例方法。 若要叫用類別靜態方法,請使用 Class 參數或 CimClass 參數。

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MethodName

指定要叫用的 CIM 方法名稱。 這個參數是必要參數,不能是 Null 或空白。 若要叫用 CIM 類別的靜態方法, 請使用 ClassNameCimClass 參數。

Type:String
Aliases:Name
Position:2
Default value:None
Required:True
Accept pipeline input:True
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

-Query

指定要在 CIM 伺服器上執行的查詢。 在查詢結果收到的實例上叫用方法。 您可以使用 QueryDialect 參數來指定查詢方

如果指定的值包含雙引號 (")、單引號 (') 或反斜杠 (\),您必須在字元前面加上反斜杠 (\) 字元,以逸出這些字元。 如果指定的值使用 WQL LIKE 運算子,則必須以方括弧 (): 百分比 (%), 底線 ([]_), 或左方括弧 () 括住下列字元,[以逸出下列字元。

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:WQL
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

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

CimClass

您可以使用管線將 CIM 類別傳送至此 Cmdlet。

CimInstance

您可以使用管線將 CIM 實例傳送至此 Cmdlet。

輸出

PSCustomObject

此 Cmdlet 會傳回 物件。

備註

PowerShell 包含下列的 Invoke-CimMethod別名:

  • Windows:
    • icim

此 Cmdlet 僅適用於 Windows 平臺。