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
È possibile inviare tramite pipe una classe CIM a questo cmdlet.
È possibile inviare tramite pipe un'istanza CIM a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto .
Note
PowerShell include gli alias seguenti per Invoke-CimMethod
:
- Windows:
icim
Questo cmdlet è disponibile solo nelle piattaforme Windows.