Condividi tramite


Invoke-WSManAction

Richiama un'azione sull'oggetto specificato dall'URI 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

Il 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 WSMan 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 ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica l'esito positivo. Il valore restituito 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" />

Il valore restituito indica se l'azione ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica l'esito positivo. Il valore restituito 5 indica che il servizio è già stato avviato.

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 di parametro, Notepad.exe e C:\. Di conseguenza, viene creato un nuovo processo per l'esecuzione del Blocco note e la directory corrente del nuovo processo viene 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é viene specificato il parametro ComputerName, il comando viene eseguito sul computer remoto server01.

Il valore restituito indica se l'azione ha avuto esito positivo. In questo caso, un valore restituito pari a 0 indica l'esito positivo. Il valore restituito 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>

Per 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 usi. Questo parametro è progettato per essere usato quando numerosi computer stabiliscono connessioni remote a un computer che esegue Windows PowerShell. In questo caso, IIS ospita i servizi Web per la gestione (WS-Management) per garantire l'efficienza.

Tipo:String
Posizione:Named
Valore predefinito:Wsman
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 di 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 di richiesta di risposta che negozia con il server o il proxy per determinare lo schema da usare per l'autenticazione. Ad esempio, questo valore di parametro consente la negoziazione per 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 raccolgono dati da o eseguono comandi aggiuntivi in altri computer remoti.

Cautela

CredSSP delega le credenziali dell'utente dal computer locale a un computer remoto. Questa procedura aumenta il rischio di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, quando vengono passate le credenziali, è possibile usare le credenziali 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 che dispone dell'autorizzazione per eseguire questa azione. Immettere l'identificazione personale del certificato.

I certificati vengono usati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

Per ottenere un'identificazione personale del certificato, usare il comando Get-Item o Get-ChildItem nell'unità Cert 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 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. Usare il nome del computer locale, usare localhost o usare un punto (.) per specificare il computer locale. Il computer locale è l'impostazione predefinita. Quando il computer remoto si trova 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:Localhost
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionURI

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

<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 autorizzato a 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 cmdlet Get-Credential. Quando si digita un nome utente, verrà 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 utilizzato per aggiornare una risorsa di gestione. Specificare la risorsa di gestione usando il parametro ResourceURI e il parametro SelectorSet. Ad esempio, il comando seguente 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
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 o perfezionare la natura della richiesta. Queste opzioni sono simili alle opzioni usate nelle shell della riga di comando perché sono specifiche del servizio. È possibile specificare un numero qualsiasi di opzioni.

Nell'esempio seguente viene illustrata 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 si connette al servizio WinRM. 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 del server.When you use HTTPS as the transport, the value of the ComputerName parameter must match the server's certificate common name (CN). Tuttavia, se il parametro SkipCNCheck viene 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 utilizzato 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 dell'istanza di . L'URI viene usato per identificare un tipo specifico di risorsa, ad esempio dischi o processi, in un computer.

Un URI è costituito da un prefisso e da un percorso di una risorsa. Per 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 valore utilizzate per selezionare determinate istanze di risorse di gestione. SelettoreSet viene usato quando esistono più istanze della risorsa. Il valore di SelectorSet deve essere una tabella hash.

Nell'esempio seguente viene illustrato 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 cmdlet New-WSManSessionOption. 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 usato.

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

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.