Share via


Connect-WSMan

Stabilisce la connessione al servizio Gestione remota Windows su 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 Connect-WSMan cmdlet 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 Gestione remota Windows su un computer remoto prima di passare al provider WSMan. Il computer remoto viene visualizzato nella directory radice del provider WSMan.

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

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

Esempio

Esempio 1: Connessione 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 remoto server01.

Il Connect-WSMan cmdlet 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 ComputerName .

Esempio 2: Connessione a un computer remoto usando le credenziali di Amministrazione istrator

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 sistema remoto server01 usando le credenziali dell'account Administrator.

Il primo comando usa il cmdlet Get-Credential per ottenere le credenziali Amministrazione istrator e quindi le archivia nella $cred variabile. Get-Credential richiede una password di nome utente e password tramite una finestra di dialogo o dalla 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-WSManquindi si connette al server di sistema remoto01 usando le credenziali di Amministrazione istrator.

Esempio 3: Connessione a un computer remoto su 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 remoto server01 sulla porta 80.

Esempio 4: Connessione 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 New-WSManSessionOption comando .

Il primo comando usa New-WSManSessionOption per archiviare un set di opzioni di impostazione di connessione nella $a variabile. 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 $a variabile 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 Web Services for Management (WS-Management) per migliorare l'efficienza.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Specifica il meccanismo di autenticazione da utilizzare nel server. I valori validi 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 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, 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 che raccolgono i dati o eseguono comandi aggiuntivi in altri computer remoti.

Attenzione

CredSSP delega le credenziali 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.

Type:AuthenticationMechanism
Aliases:auth, am
Accepted values:None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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.

Type:String
Aliases:cn
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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\User01o User@Domain.com. In alternativa, immettere un oggetto PSCredential , ad esempio quello restituito dal Get-Credential cmdlet . Quando si digita un nome utente, questo cmdlet richiede una password.

Type:PSCredential
Aliases:cred, c
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 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}

Type:Hashtable
Aliases:os
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionOption

Specifica le opzioni estese per la sessione WS-Management. Immettere un oggetto SessionOption creato usando il New-WSManSessionOption cmdlet . Per altre informazioni sulle opzioni disponibili, digitare Get-Help New-WSManSessionOption.

Type:SessionOption
Aliases:so
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

È possibile eseguire i comandi di gestione o dati di gestione di query su 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.