Condividi tramite


Invoke-WSManAction

Richiama un'azione sull'oggetto specificato dall'URI della risorsa e dai selettori.

Sintassi

Invoke-WSManAction
      [-Action] <String>
      [-ConnectionURI <Uri>]
      [-FilePath <String>]
      [-OptionSet <Hashtable>]
      [[-SelectorSet] <Hashtable>]
      [-SessionOption <SessionOption>]
      [-ValueSet <Hashtable>]
      [-ResourceURI] <Uri>
      [-Credential <PSCredential>]
      [-Authentication <AuthenticationMechanism>]
      [-CertificateThumbprint <String>]
      [<CommonParameters>]
Invoke-WSManAction
      [-Action] <String>
      [-ApplicationName <String>]
      [-ComputerName <String>]
      [-FilePath <String>]
      [-OptionSet <Hashtable>]
      [-Port <Int32>]
      [[-SelectorSet] <Hashtable>]
      [-SessionOption <SessionOption>]
      [-UseSSL]
      [-ValueSet <Hashtable>]
      [-ResourceURI] <Uri>
      [-Credential <PSCredential>]
      [-Authentication <AuthenticationMechanism>]
      [-CertificateThumbprint <String>]
      [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Invoke-WSManAction Esegue un'azione sull'oggetto specificato da RESOURCE_URI, dove i parametri vengono specificati dalle coppie chiave-valore.

Questo cmdlet usa il livello di connessione/trasporto WS-Man per eseguire l'azione.

Esempio

Esempio 1: Richiamare un metodo

Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service  -SelectorSet @{name="spooler"} -Authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Questo comando chiama il metodo StartService dell'istanza della classe WMI Win32_Service che corrisponde al servizio Spooler.

Il valore restituito indica se l'azione è riuscita. In questo caso, il valore restituito pari a 0 indica che l'azione è riuscita. Un valore restituito pari a 5 indica che il servizio è già stato avviato.

Esempio 2: Richiamare un metodo

Invoke-WSManAction -Action stopservice -ResourceURI wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath:input.xml -Authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Questo comando chiama il metodo StopService nel servizio Spooler usando l'input di un file. Il file , Input.xml, contiene il contenuto seguente:

<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />

Esempio 3: Richiamare un metodo con valori di parametro specificati

Invoke-WSManAction -Action create -ResourceURI wmicimv2/win32_process -ValueSet @{commandline="notepad.exe";currentdirectory="C:\"}

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ProcessId   : 6356
ReturnValue : 0

Questo comando chiama il metodo Create della classe Win32_Process. Passa il metodo due valori dei parametri e Notepad.exe C:\. Di conseguenza, viene creato un nuovo processo per l'esecuzione del Blocco note e la directory corrente del nuovo processo è impostata su C:\.

Esempio 4: Richiamare un metodo in un computer remoto

Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service  -SelectorSet @{name="spooler"} -ComputerName server01 -Authentication default

xsi         : http://www.w3.org/2001/XMLSchema-instance
p           : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
cim         : http://schemas.dmtf.org/wbem/wscim/1/common
lang        : en-US
ReturnValue : 0

Questo comando chiama il metodo StartService dell'istanza della classe WMI Win32_Service che corrisponde al servizio Spooler. Poiché il parametro ComputerName è specificato, il comando viene eseguito sul computer remoto server01.

Il valore restituito indica se l'azione è riuscita. In questo caso, il valore restituito pari a 0 indica che l'azione è riuscita. Un valore restituito pari a 5 indica che il servizio è già stato avviato.

Parametri

-Action

Specifica il metodo da eseguire sull'oggetto di gestione specificato dall'oggetto ResourceURI e dai selettori.

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

-ApplicationName

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è WSMAN. L'identificatore completo per l'endpoint remoto è nel formato seguente:

<Transport>://<Server>:<Port>/<ApplicationName>

Ad esempio:

http://server01:8080/WSMAN

Internet Information Services (IIS) che ospita la sessione, inoltra le richieste con questo endpoint all'applicazione specificata. Questa impostazione predefinita di "WSMAN" è appropriata per la maggior parte degli utilizzi. Questo parametro è progettato per essere usato quando numerosi computer stabiliscono connessioni remote a un computer che esegue Windows PowerShell. In questo caso, IIS ospita Web Services for Management (WS-Management) per migliorare l'efficienza.

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

-Authentication

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori possibili sono:

  • Basic - Basic è uno schema in cui il nome utente e la password vengono inviati in testo non crittografato al server o al proxy.
  • Default - Usare il metodo di autenticazione implementato dal protocollo WS-Management. Si tratta dell'impostazione predefinita.
  • Digest - Digest è uno schema challenge-response che usa una stringa di dati specificata dal server per la richiesta di verifica.
  • Kerberos - Il computer client e il server si autenticano a vicenda usando i certificati Kerberos.
  • Negotiate - Negotiate è uno schema challenge-response che negozia con il server o il proxy per determinare lo schema da usare per l'autenticazione. Ad esempio, il valore del parametro consente alla negoziazione di determinare se viene usato il protocollo Kerberos o NTLM.
  • CredSSP - Usare l'autenticazione CredSSP (Credential Security Support Provider), che consente all'utente di delegare le credenziali. Questa opzione è progettata per i comandi eseguiti in un computer remoto, ma che raccolgono i dati o eseguono comandi aggiuntivi in altri computer remoti.

Attenzione

CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa pratica aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.

Tipo:AuthenticationMechanism
Alias:auth, am
Valori accettati:None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-CertificateThumbprint

Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. Immettere l'identificazione personale del certificato.

I certificati vengono usati nell'autenticazione basata sui certificati client. Possono essere mappati solo ad account utente locali. Non funzionano con gli account di dominio.

Per ottenere un'identificazione personale del certificato, usare il Get-Item comando o Get-ChildItem nell'unità Certificato di Windows PowerShell: .

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

-ComputerName

Specifica il computer su cui eseguire l'operazione di gestione. Il valore può essere un nome di dominio completo, un nome NetBIOS o un indirizzo IP. Usare il nome del computer locale, usare localhost o usare un punto (.) per specificare il computer locale. Il valore predefinito è il computer locale. Quando il computer remoto è in un dominio diverso dall'utente, è necessario usare un nome di dominio completo. È possibile inviare tramite pipe un valore per questo parametro al cmdlet.

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

-ConnectionURI

Specifica l'endpoint della connessione. Il formato di questa stringa è il seguente:

<Transport>://<Server>:<Port>/<ApplicationName>

La stringa seguente è un valore formattato correttamente per questo parametro:

http://Server01:8080/WSMAN

L'URI deve essere completo.

Tipo:Uri
Alias:CURI, CU
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio "User01", "Domain01\User01" o User@Domain.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal Get-Credential cmdlet . Quando si digita un nome utente, viene richiesta una password.

Tipo:PSCredential
Alias:cred, c
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-FilePath

Specifica il percorso di un file che viene usato per aggiornare una risorsa di gestione. È possibile specificare la risorsa di gestione usando il parametro ResourceURI e il parametro SelectorSet. Il comando seguente, ad esempio, usa il parametro FilePath:

Invoke-WSManAction -Action stopservice -ResourceUri wmicimv2/Win32_Service -SelectorSet @{Name="spooler"} -FilePath c:\input.xml -Authentication default

Questo comando chiama il metodo StopService nel servizio Spooler usando l'input di un file. Il file , Input.xml, contiene il contenuto seguente:

<p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service" />

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

-OptionSet

Passa un set di opzioni a un servizio per modificare oppure ottimizzare la natura della richiesta. Sono simili alle opzioni usate nelle shell della riga di comando, in quanto sono specifiche del servizio. È possibile specificare qualsiasi numero di opzioni.

L'esempio seguente illustra la sintassi che passa i valori 1, 2 e 3 per i parametri a, b e c:

-OptionSet @{a=1;b=2;c=3}

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

-Port

Specifica la porta da usare quando il client stabilisce la connessione al servizio Gestione remota Windows. Quando il trasporto è HTTP, la porta predefinita è 80. Quando il trasporto è HTTPS, la porta predefinita è 443. Quando si usa HTTPS come trasporto, il valore del parametro ComputerName deve corrispondere al nome comune del certificato (CN) del server. Tuttavia, se il parametro SkipCNCheck è specificato come parte del parametro SessionOption, il nome comune del certificato del server non deve corrispondere al nome host del server. Il parametro SkipCNCheck deve essere usato solo per i computer attendibili.

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

-ResourceURI

Contiene l'URI (Uniform Resource Identifier) della classe di risorse o istanza. 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://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor

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

-SelectorSet

Specifica un set di coppie valori usate per selezionare particolari istanze di risorse di gestione. SelectorSet viene usato quando esiste più di un'istanza della risorsa. Il valore di SelectorSet deve essere una tabella hash.

L'esempio seguente illustra come immettere un valore per questo parametro:

-SelectorSet @{Name="WinRM";ID="yyy"}

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

-SessionOption

Definisce un set di opzioni estese per la sessione di WS-Management. Immettere un oggetto SessionOption creato usando il New-WSManSessionOption cmdlet . Per altre informazioni sulle opzioni disponibili, vedere New-WSManSessionOption.

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

-UseSSL

Specifica che il protocollo SSL (Secure Sockets Layer) viene usato per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.

WS-Management crittografa tutto il contenuto di PowerShell trasmesso in rete. Il parametro UseSSL consente di specificare la protezione aggiuntiva del protocollo HTTPS anziché HTTP. Se SSL non è disponibile sulla porta usata per la connessione e si specifica questo parametro, il comando non riesce.

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

-ValueSet

Specifica una tabella hash che consente di modificare una risorsa di gestione. Specificare la risorsa di gestione usando i parametri ResourceURI e SelectorSet . Il valore del parametro ValueSet deve essere una tabella hash.

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

XmlElement

Questo cmdlet restituisce il risultato dell'operazione come oggetto XmlElement .