Chiama i metodi di Strumentazione gestione Windows (WMI)
Sintassi
Invoke-WmiMethod [-Classe] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Spazio dei nomi <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Descrizione
Il cmdlet Invoke-WmiMethod chiama i metodi WMI.
Parametri
-ArgumentList <Object[]>
Specifica i parametri da passare al metodo chiamato. Il valore di questo parametro deve essere una matrice di oggetti, i quali devono essere posti nell'ordine richiesto dal metodo chiamato.
Importante: è necessario indicare un secondo valore di $null, in caso contrario il comando genererà un errore, ad esempio "Impossibile eseguire il cast di oggetti di tipo 'System.Byte' sul tipo 'System.Array'".
Di seguito viene riportato un esempio di utilizzo di una matrice di oggetti ($binSD) seguita da un valore null ($null):
PS C:\> $acl = Get-Acl test.txt
PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()
PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-AsJob
Esegue il comando come processo in background. Utilizzare questo parametro per eseguire comandi il cui completamento richiede molto tempo.
Quando si utilizza il parametro AsJob, il comando restituisce un oggetto che rappresenta il processo in background, quindi visualizza il prompt dei comandi. È possibile continuare a utilizzare la sessione fino al completamento del processo. Se Invoke-WmiMethod viene utilizzato in un computer remoto, il processo viene creato nel computer locale e i risultati dei computer remoti vengono automaticamente restituiti nel computer locale. Per gestire il processo, utilizzare i cmdlet che contengono il nome Job (cmdlet Job). Per ottenere i risultati del processo, utilizzare il cmdlet Receive-Job.
Nota: per utilizzare questo parametro con computer remoti, è necessario configurare il computer locale e quello remoto per la comunicazione remota. È inoltre necessario avviare Windows PowerShell utilizzando l'opzione "Esegui come amministratore" di Windows Vista e delle versioni successive di Windows. Per ulteriori informazioni, vedere about_Remote_Requirements.
Per ulteriori informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Authentication <AuthenticationLevel>
Specifica il livello di autenticazione da utilizzare con la connessione WMI. I valori validi sono:
-1: Unchanged
0: Default
1: None (non viene eseguita alcuna autenticazione).
2: Connect (l'autenticazione viene eseguita solo quando il client stabilisce una relazione con l'applicazione).
3: Call (l'autenticazione viene eseguita solo all'inizio di ogni chiamata quando l'applicazione riceve la richiesta).
4: Packet (l'autenticazione viene eseguita su tutti i dati ricevuti dal client).
5: PacketIntegrity (tutti i dati trasferiti tra il client e l'applicazione vengono autenticati e verificati).
6: PacketPrivacy (vengono utilizzate le proprietà degli altri livelli di autenticazione e tutti i dati vengono crittografati).
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Authority <string>
Specifica l'autorità da utilizzare per autenticare la connessione WMI. È possibile specificare l'autenticazione NTLM o Kerberos standard. Per utilizzare NTLM, impostare l'autorità su ntlmdomain:<NomeDominio>, dove <NomeDominio> identifica un nome di dominio NTLM valido. Per utilizzare Kerberos, specificare kerberos:<NomeDominio\NomeServer>. Non è possibile includere l'impostazione Authority quando ci si connette al computer locale.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Classe <string>
Specifica la classe WMI che contiene un metodo statico da chiamare.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ComputerName <string[]>
Specifica il computer in cui si desidera eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP (Internet Protocol). Utilizzare il nome del computer locale, localhost o un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto si trova in un dominio diverso da quello dell'utente, è obbligatorio utilizzare un nome di dominio completo. È inoltre possibile impostare il valore di questo parametro reindirizzando il valore al parametro.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Credential <PSCredential>
Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "Utente01", "Dominio01\Utente01" o Utente@Contoso.com. In alternativa, immettere un oggetto PSCredential, ad esempio uno restituito dal cmdlet Get-Credential. Quando si digita un nome utente, viene richiesta una password.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-EnableAllPrivileges
Abilita tutti i privilegi dell'utente corrente prima che il comando effettui la chiamata WMI.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Impersonation <ImpersonationLevel>
Specifica il livello di rappresentazione da utilizzare. I valori validi sono:
0: Default (legge il Registro di sistema locale per il livello di rappresentazione predefinito, in genere impostato su "3: Impersonate").
1: Anonymous (nasconde le credenziali del chiamante).
2: Identify (consente agli oggetti di eseguire query delle credenziali del chiamante).
3: Impersonate (consente agli oggetti di utilizzare le credenziali del chiamante).
4: Delegate (consente agli oggetti di permettere ad altri oggetti di utilizzare le credenziali del chiamante).
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InputObject <ManagementObject>
Specifica un oggetto ManagementObject da utilizzare come input. Quando viene utilizzato questo parametro, tutti gli altri parametri tranne Flag e Argument vengono ignorati.
Obbligatorio? |
true |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-Locale <string>
Specifica le impostazioni locali preferite per gli oggetti WMI. Specifica il valore del parametro Locale come matrice nel formato MS_<LCID> nell'ordine preferito.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Name <string>
Specifica il nome del metodo da richiamare. Questo parametro è obbligatorio e non può essere null o vuoto.
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Spazio dei nomi <string>
Quando viene utilizzato con il parametro Class, questo parametro specifica lo spazio dei nomi dell'archivio WMI in cui si trova la classe WMI o l'oggetto a cui si fa riferimento.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Path <string>
Specifica il percorso dell'oggetto WMI di una classe o di un'istanza di una classe WMI. La classe o l'istanza che specificata deve contenere il metodo specificato nel parametro Name.
Obbligatorio? |
true |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ThrottleLimit <int>
Consente all'utente di specificare un valore di limitazione per il numero di operazioni WMI (Strumentazione gestione Windows) che è possibile eseguire contemporaneamente. Questo parametro viene utilizzato insieme al parametro AsJob. Il limite di velocità si applica solo al comando corrente, non alla sessione o al computer.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Confirm
Chiede una conferma prima di eseguire il comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-WhatIf
Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
Nessuno Questo cmdlet non accetta alcun input. |
Output |
Nessuno Questo cmdlet non genera alcun output. |
Esempio 1
C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 2 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ProcessId : 4844 ReturnValue : 0 Descrizione ----------- Con questo comando viene avviata un'istanza di Blocco note chiamando il metodo Create metodo della classe Win32_Process. Nota: la proprietà ReturnValue viene compilata con uno 0 e la proprietà ProcessId viene compilata con un valore intero (il numero ID del processo successivo) se viene completato il comando.
Esempio 2
C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt" __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 Descrizione ----------- Con questo comando viene rinominato un file. Viene utilizzato il parametro Path per fare riferimento a un'istanza della classe CIM_DataFile. Successivamente, viene applicato il metodo Rename a quella particolare istanza. Nota: la proprietà ReturnValue viene compilata con uno 0 se viene completato il comando.
Vedere anche