Condividi tramite


Invoke-CimMethod

Richiama un metodo di una classe CIM.

Sintassi

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

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Invoke-CimMethod cmdlet richiama un metodo di una classe CIM o di un'istanza CIM usando le coppie nome-valore specificate dal parametro Arguments .

Se il parametro InputObject non viene specificato, il cmdlet funziona in uno dei modi seguenti:

  • Se non viene specificato né il parametro ComputerName né il parametro CimSession , questo cmdlet funziona in Strumentazione gestione Windows locale (WMI) usando una sessione COM (Component Object Model).
  • Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet funziona sul server CIM specificato dal parametro ComputerName o dal parametro CimSession.

Se si specifica il parametro InputObject , il cmdlet funziona in uno dei modi seguenti:

  • Se non viene specificato né il parametro ComputerName né il parametro CimSession , questo cmdlet usa la sessione CIM o il nome del computer dall'oggetto di input.
  • Se viene specificato il parametro ComputerName o il parametro CimSession, questo cmdlet usa il valore del parametro CimSession o il valore del parametro ComputerName. Non si tratta di uno scenario comune.

Esempio

Esempio 1: Richiamare un metodo

In questo esempio viene richiamato il metodo Terminate della classe Win32_Process .

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

Esempio 2: Richiamare un metodo usando l'oggetto istanza CIM

Questo esempio recupera l'oggetto istanza CIM e lo archivia in una variabile denominata $x usando il Get-CimInstance cmdlet . Il contenuto della variabile viene quindi usato come InputObject per il Invoke-CimMethod cmdlet . Il metodo GetOwner viene richiamato per CimInstance.

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

Esempio 3: Richiamare un metodo statico usando argomenti

In questo esempio viene richiamato il metodo Create denominato usando il parametro Arguments .

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

Esempio 4: convalida lato client

In questo esempio viene eseguita la convalida lato client per il metodo xyz passando un oggetto CimClass a .Invoke-CimMethod

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

Parametri

-Arguments

Specifica i parametri da passare al metodo chiamato. Specificare i valori per questo parametro come coppie nome-valore archiviate in una tabella hash. L'ordine dei valori immessi non è importante.

Tipo:IDictionary
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-CimClass

Specifica un oggetto classe CIM che rappresenta una definizione di classe CIM nel server. Usare questo parametro quando si richiama un metodo statico di una classe.

È possibile usare il Get-CimClass cmdlet per recuperare una definizione di classe dal server.

L'uso di questo parametro comporta una migliore convalida dello schema lato client.

Tipo:CimClass
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-CimSession

Esegue il comando usando la sessione CIM specificata. Immettere una variabile contenente la sessione CIM o un comando che crea o ottiene la sessione CIM, ad esempio i New-CimSession cmdlet o Get-CimSession . Per altre informazioni, vedere about_CimSession.

Tipo:CimSession[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-ClassName

Specifica il nome della classe CIM per cui eseguire l'operazione. Questo parametro viene usato solo per i metodi statici. È possibile usare il completamento tramite tabulazione per esplorare l'elenco delle classi, perché PowerShell ottiene un elenco di classi dal server WMI locale per fornire un elenco di nomi di classi.

Tipo:String
Alias:Class
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-ComputerName

Specifica il nome del computer in cui si desidera eseguire l'operazione CIM. È possibile specificare un nome di dominio completo (FQDN), un nome NetBIOS o un indirizzo IP.

Quando si usa questo parametro, il cmdlet crea una sessione temporanea nel computer specificato usando il protocollo WsMan. In caso contrario, il cmdlet esegue l'operazione nel computer locale usando Component Object Model (COM).

Connettersi usando una sessione CIM per ottenere prestazioni migliori quando vengono eseguite più operazioni nello stesso computer.

Tipo:String[]
Alias:CN, ServerName
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

Specifica un oggetto istanza CIM da utilizzare come input per richiamare un metodo. Questo parametro può essere usato solo per richiamare i metodi di istanza. Per richiamare i metodi statici della classe, usare il parametro Class o il parametro CimClass .

Tipo:CimInstance
Alias:CimInstance
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-MethodName

Specifica il nome del metodo CIM da richiamare. Questo parametro è obbligatorio e non può essere Null o vuoto. Per richiamare un metodo statico di una classe CIM, usare className o il parametro CimClass.

Tipo:String
Alias:Name
Posizione:2
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Namespace

Specifica lo spazio dei nomi per l'operazione CIM. Lo spazio dei nomi predefinito è root/cimv2. È possibile usare il completamento della scheda per esplorare l'elenco degli spazi dei nomi, perché PowerShell ottiene un elenco di spazi dei nomi dal server WMI locale per fornire l'elenco degli spazi dei nomi.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-OperationTimeoutSec

Specifica la quantità di tempo in cui il cmdlet attende una risposta dal computer. Per impostazione predefinita, il valore è 0, il che significa che il cmdlet usa il valore di timeout predefinito per il server.

Se il parametro OperationTimeoutSec è impostato su un valore inferiore al timeout di tentativo di connessione predefinito di 3 minuti, gli errori di rete che durano più del valore del parametro OperationTimeoutSec non sono recuperabili.

Tipo:UInt32
Alias:OT
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Query

Specifica una query da eseguire nel server CIM. Un metodo viene richiamato sulle istanze ricevute come risultato della query. È possibile specificare il dialetto della query usando il parametro QueryDialect .

Se il valore specificato contiene virgolette doppie ("), virgolette singole (') o una barra rovesciata (\), è necessario eseguire l'escape di tali caratteri anteponendo loro la barra rovesciata (\). Se il valore specificato usa l'operatore LIKE WQL, è necessario racchiuderli tra parentesi quadre (): percent ([]%), carattere di sottolineatura (_) o parentesi quadra aperta ([).

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-QueryDialect

Specifica il linguaggio di query utilizzato per il parametro Query. I valori accettabili per questo parametro sono: WQL o CQL.

Il valore predefinito è WQL.

Tipo:String
Posizione:Named
Valore predefinito:WQL
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-ResourceUri

Specifica l'URI (Uniform Resource Identifier) della classe di risorse o dell'istanza di risorsa. L'URI viene usato per identificare un tipo specifico di risorsa, ad esempio i dischi o i processi, in un computer specifico.

Un URI è costituito da un prefisso e un percorso di una risorsa. Ad esempio:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

Per impostazione predefinita, se non si specifica questo parametro, viene usato l'URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ della risorsa standard DMTF e il nome della classe viene aggiunto.

ResourceURI può essere usato solo con le sessioni CIM create usando il protocollo WSMan o quando si specifica il parametro ComputerName , che crea una sessione CIM usando WSMan.

Quando si specifica questo parametro senza specificare il parametro ComputerName o quando si specifica una sessione CIM creata usando il protocollo DCOM, viene visualizzato un errore. Il protocollo DCOM non supporta il parametro ResourceURI .

Se vengono specificati sia il parametro ResourceUri che il parametro Filter , il parametro Filter viene ignorato.

Tipo:Uri
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

CimClass

È possibile inviare tramite pipe una classe CIM a questo cmdlet.

CimInstance

È possibile inviare tramite pipe un'istanza CIM a questo cmdlet.

Output

PSCustomObject

Questo cmdlet restituisce un oggetto .

Note

PowerShell include gli alias seguenti per Invoke-CimMethod:

  • Windows:
    • icim

Questo cmdlet è disponibile solo nelle piattaforme Windows.