Condividi tramite


Connect-WSMan

Si connette al servizio WinRM in un computer remoto.

Sintassi

Connect-WSMan
       [-ApplicationName <String>]
       [[-ComputerName] <String>]
       [-OptionSet <Hashtable>]
       [-Port <Int32>]
       [-SessionOption <SessionOption>]
       [-UseSSL]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [<CommonParameters>]
Connect-WSMan
       [-ConnectionURI <Uri>]
       [-OptionSet <Hashtable>]
       [-Port <Int32>]
       [-SessionOption <SessionOption>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il cmdlet Connect-WSMan si connette al servizio WinRM in un computer remoto e stabilisce una connessione permanente al computer remoto. È possibile usare questo cmdlet nel contesto del provider WSMan per connettersi al servizio WinRM in un computer remoto. Tuttavia, è anche possibile usare questo cmdlet per connettersi al servizio WinRM in un computer remoto prima di passare al provider WSMan. Il computer remoto viene visualizzato nella directory radice del provider WSMan.

Le credenziali esplicite sono necessarie quando i computer client e server si trovano in domini o gruppi di lavoro diversi.

Per informazioni su come disconnettersi dal servizio WinRM in un computer remoto, vedere il cmdlet Disconnect-WSMan.

Esempio

Esempio 1: Connettersi a un computer remoto

PS C:\> Connect-WSMan -ComputerName "server01"
PS C:\> cd WSMan:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Questo comando crea una connessione al computer server01 remoto.

Il cmdlet Connect-WSMan viene in genere usato nel contesto del provider WSMan per connettersi a un computer remoto, in questo caso il computer server01. Tuttavia, è possibile usare il cmdlet per stabilire connessioni ai computer remoti prima di passare al provider WSMan. Tali connessioni vengono visualizzate nell'elenco NomeComputer.

Esempio 2: Connettersi a un computer remoto usando le credenziali di amministratore

PS C:\> $cred = Get-Credential Administrator
PS C:\> Connect-WSMan -ComputerName "server01" -Credential $cred
PS C:\> cd WSMan:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Questo comando crea una connessione al server di sistema remoto01 usando le credenziali dell'account amministratore.

Il primo comando usa il cmdlet Get-Credential per ottenere le credenziali di amministratore e quindi le archivia nella variabile $cred. Get-Credential richiede una password di nome utente e password tramite una finestra di dialogo o nella riga di comando, a seconda delle impostazioni del Registro di sistema.

Il secondo comando usa il parametro Credential per passare le credenziali archiviate in $cred a Connect-WSMan. Connect-WSMan quindi si connette al server di sistema remoto01 usando le credenziali di amministratore.

Esempio 3: Connettersi a un computer remoto tramite una porta specificata

PS C:\> Connect-WSMan -ComputerName "server01" -Port 80
PS C:\> cd WSMan:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

Questo comando crea una connessione al computer server01 remoto sulla porta 80.

Esempio 4: Connettersi a un computer remoto usando le opzioni di connessione

PS C:\> $a = New-WSManSessionOption -OperationTimeout 30000
PS C:\> Connect-WSMan -ComputerName "server01" -SessionOption $a
PS C:\> cd WSMan:
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

In questo esempio viene creata una connessione al computer server01 remoto usando le opzioni di connessione definite nel comando New-WSManSessionOption.

Il primo comando usa New-WSManSessionOption per archiviare un set di opzioni di impostazione di connessione nella variabile $a. In questo caso, le opzioni della sessione impostano un timeout di connessione di 30 secondi (30.000 millisecondi).

Il secondo comando usa il parametro SessionOption per passare le credenziali archiviate nella variabile $a a Connect-WSMan. Quindi, Connect-WSMan si connette al computer remoto server01 usando le opzioni di sessione specificate.

Parametri

-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 usi. Questo parametro è progettato per essere usato se molti 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: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 accettabili per questo parametro 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 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 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:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionURI

Specifica l'endpoint di 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
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\User01o User@Domain.com. In alternativa, immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential. Quando si digita un nome utente, questo cmdlet richiede una password.

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

-OptionSet

Specifica un set di opzioni a un servizio per modificare o perfezionare la natura della richiesta. Queste opzioni sono simili a quelle 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:False
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 NomeComputer 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

-SessionOption

Specifica le opzioni estese per la sessione di WS-Management. Immettere un oggetto SessionOption creato usando il cmdlet New-WSManSessionOption. Per altre informazioni sulle opzioni disponibili, digitare Get-Help 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 Windows 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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun output.

Note

È possibile eseguire comandi di gestione o dati di gestione delle query in un computer remoto senza creare una sessione di WS-Management. A tale scopo, è possibile usare i parametri ComputerName di Invoke-WSManAction e Get-WSManInstance. Quando si usa il parametro ComputerName, Windows PowerShell crea una connessione temporanea usata per il singolo comando. Dopo l'esecuzione del comando, la connessione viene chiusa.