Avvia una sessione interattiva con un computer remoto.

Sintassi

Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]

Enter-PSSession [[-Id] <int>] [<CommonParameters>]

Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>]

Enter-PSSession [-Name <string>] [<CommonParameters>]

Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>]

Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]

Descrizione

Il cmdlet Enter-PSSession avvia una sessione interattiva con un singolo computer remoto. Durante la sessione, i comandi digitati vengono eseguiti nel computer remoto, come se venissero digitati direttamente nel computer remoto. È possibile disporre di una sola sessione interattiva alla volta.

In genere, viene utilizzato il parametro ComputerName per specificare il nome del computer remoto. Tuttavia, è possibile utilizzare anche una sessione creata tramite New-PSSession per la sessione interattiva.

Per terminare la sessione interattiva e disconnettersi dal computer remoto, utilizzare il cmdlet Exit-PSSession o digitare "exit".

Parametri

-AllowRedirection

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare questo parametro per consentire il reindirizzamento della connessione.

Consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si utilizza il parametro ConnectionURI, la destinazione remota può restituire un'istruzione di reindirizzamento a un altro URI. Per impostazione predefinita in Windows PowerShell le connessioni non vengono reindirizzate, ma è possibile utilizzare il parametro AllowRedirection per consentire il reindirizzamento della connessione.

È inoltre possibile limitare il numero di volte in cui la connessione viene reindirizzata impostando la proprietà MaximumConnectionRedirectionCount della variabile di preferenza $PSSessionOption o la proprietà MaximumConnectionRedirectionCount del valore del parametro SessionOption. Il valore predefinito è 5. Per ulteriori informazioni, vedere la descrizione del parametro SessionOption e New-PSSessionOption.

Obbligatorio?

false

Posizione?

named

Valore predefinito

False

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ApplicationName <string>

Specifica il segmento del nome dell'applicazione dell'URI di connessione. Utilizzare questo parametro per specificare il nome dell'applicazione quando non si utilizza il parametro ConnectionURI nel comando.

Il valore predefinito è il valore della variabile di preferenza $PSSessionApplicationName nel computer locale. Se questa variabile di preferenza non è definita, il valore predefinito è WSMAN. Questo valore è appropriato per la maggior parte degli utilizzi. Per ulteriori informazioni, vedere about_Preference_Variables.

Il servizio Gestione remota Windows utilizza il nome dell'applicazione per selezionare un listener per la gestione della richiesta di connessione. Il valore di questo parametro deve corrispondere al valore della proprietà URLPrefix di un listener nel computer remoto.

Obbligatorio?

false

Posizione?

named

Valore predefinito

WSMAN

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Authentication <AuthenticationMechanism>

Specifica il meccanismo utilizzato per autenticare le credenziali dell'utente. I valori validi sono "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" e "NegotiateWithImplicitCredential". Il valore predefinito è "Default".

L'autenticazione CredSSP è disponibile unicamente in Windows Vista, Windows Server 2008 e versioni successive di Windows.

Per informazioni sui valori di questo parametro, vedere la descrizione dell'enumerazione System.Management.Automation.Runspaces.AuthenticationMechanism in MSDN Library all'indirizzo https://go.microsoft.com/fwlink/?LinkId=144382 (le informazioni potrebbero essere in lingua inglese).

Attenzione: l'autenticazione CredSSP (Credential Security Service Provider), che prevede il passaggio delle credenziali dell'utente a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se il computer remoto è compromesso, è possibile utilizzare le credenziali passate a tale computer per controllare la sessione di rete.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-CertificateThumbprint <string>

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

I certificati vengono utilizzati 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 digitale del certificato, utilizzare il comando Get-Item o Get-ChildItem nell'unità Cert: di Windows PowerShell.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-ComputerName <string>

Avvia una sessione interattiva con il computer remoto specificato. Immettere un solo nome del computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. È anche possibile reindirizzare il nome di un computer a Enter-PSSession.

Per utilizzare un indirizzo IP nel valore del parametro ComputerName, il comando deve includere il parametro Credential. È inoltre necessario configurare il computer per il trasporto HTTPS o includere l'indirizzo IP del computer remoto nell'elenco di host attendibili (TrustedHosts) di Gestione remota Windows nel computer locale. Per istruzioni relative all'aggiunta di un nome di computer all'elenco di host attendibili (TrustedHosts), vedere "Come aggiungere un computer all'elenco di host attendibili" in about_Remote_Troubleshooting.

Nota: in Windows Vista e nelle versioni successive di Windows per includere il computer locale nel valore del parametro ComputerName, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

false

-ConfigurationName <string>

Specifica la configurazione di sessione utilizzata per la sessione interattiva.

Immettere un nome di configurazione o l'URI di risorsa completo per una configurazione di sessione. Se si specifica unicamente il nome di configurazione, viene anteposto l'URI di schema seguente: https://schemas.microsoft.com/powershell.

La configurazione di sessione per una sessione si trova nel computer remoto. Se la configurazione di sessione specificata non esiste nel computer remoto, il comando ha esito negativo.

Il valore predefinito è il valore della variabile di preferenza $PSSessionConfigurationName nel computer locale. Se questa variabile di preferenza non è impostata, l'impostazione predefinita è Microsoft.PowerShell. Per ulteriori informazioni, vedere about_Preference_Variables.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-ConnectionURI <Uri>

Specifica un URI (Uniform Resource Identifier) che definisce l'endpoint della connessione per la sessione interattiva. L'URI deve essere completo.

Il formato di questa stringa è il seguente:

<Trasporto>://<NomeComputer>:<Porta>/<NomeApplicazione>

Il valore predefinito è il seguente:

http://localhost:80/WSMAN

I valori validi per il segmento Trasport dell'URI sono HTTP e HTTPS. Se non si specifica ConnectionURI, è possibile utilizzare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori URI.

Se il computer di destinazione reindirizza la connessione a un URI diverso, in Windows PowerShell viene impedito il reindirizzamento a meno che non si utilizzi il parametro AllowRedirection nel comando.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

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@Dominio.com", oppure 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

Current user

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Id <int>

Specifica l'ID di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

Per trovare l'ID di una sessione, utilizzare il cmdlet Get-PSSession.

Obbligatorio?

false

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-InstanceId <Guid>

Specifica l'ID istanza di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

L'ID istanza è un GUID. Per trovare l'ID istanza di una sessione, utilizzare il cmdlet Get-PSSession. È anche possibile utilizzare i parametri Session, Name o ID per specificare una sessione esistente. In alternativa è possibile utilizzare il parametro ComputerName per avviare una sessione temporanea.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Name <string>

Specifica il nome descrittivo di una sessione esistente. Tramite Enter-PSSession viene utilizzata la sessione specificata per la sessione interattiva.

Se il nome specificato corrisponde a più di una sessione, il comando avrà esito negativo. È anche possibile utilizzare i parametri Session, InstanceID o ID per specificare una sessione esistente. In alternativa è possibile utilizzare il parametro ComputerName per avviare una sessione temporanea.

Per stabilire un nome descrittivo per una sessione, utilizzare il parametro Name del cmdlet New-PSSession.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Port <int>

Specifica la porta di rete nel computer remoto utilizzato per questo comando. Il valore predefinito è la porta 80 (porta HTTP).

Prima di utilizzare una porta alternativa, è necessario configurare il listener WinRM nel computer remoto affinché resti in ascolto su tale porta. Utilizzare i comandi seguenti per configurare il listener:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<numero-porta>"}

Non utilizzare il parametro Port a meno che non sia necessario. L'impostazione di porta nel comando si applica a tutti i computer o a tutte le sessioni in cui il comando è in esecuzione. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Session <PSSession>

Specifica una sessione di Windows PowerShell (PSSession) da utilizzare per la sessione interattiva. Questo parametro accetta un oggetto sessione. È anche possibile utilizzare i parametri Name, InstanceID o ID per specificare una sessione PSSession.

Immettere una variabile che contiene un oggetto sessione o un comando che crea o ottiene un oggetto sessione, ad esempio un comando New-PSSession o Get-PSSession. È inoltre possibile reindirizzare un oggetto sessione a Enter-PSSession. È possibile inviare solo una sessione PSSession con questo parametro. Se si immette una variabile che contiene più di una sessione PSSession, il comando avrà esito negativo.

Quando si utilizza Exit-PSSession o la parola chiave EXIT, la sessione interattiva termina, ma la sessione PSSession creata rimane aperta e disponibile all'uso.

Obbligatorio?

false

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

true

-SessionOption <PSSessionOption>

Imposta opzioni avanzate per la sessione. Immettere un oggetto SessionOption creato utilizzando il cmdlet New-PSSessionOption.

I valori predefiniti delle opzioni sono determinati dal valore della variabile di preferenza $PSSessionOption, se impostato. In caso contrario nella sessione vengono utilizzate le impostazioni predefinite del sistema.

Per una descrizione delle opzioni di sessione, inclusi i valori predefiniti, vedere New-PSSessionOption. Per informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-UseSSL

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

WS-Management consente di crittografare tutto il contenuto di Windows PowerShell trasmesso in rete. UseSSL consente di inviare i dati con una protezione aggiuntiva attraverso una connessione HTTPS anziché HTTP.

Se si utilizza questo parametro, ma SSL non è disponibile sulla porta utilizzata per il comando, il comando ha esito negativo.

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

System.String o System.Management.Automation.Runspaces.PSSession

È possibile reindirizzare un nome del computer (una stringa) o un oggetto sessione a Enter-PSSession.

Output

Nessuno

Il cmdlet non restituisce alcun output.

Note

-- Per connettersi a un computer remoto, è necessario essere un membro del gruppo Administrators nel computer remoto.

-- In Windows Vista e nelle versioni successive di Windows, per avviare una sessione interattiva nel computer locale, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore".

-- Quando si utilizza Enter-PSSession, il profilo utente nel computer remoto viene utilizzato per la sessione interattiva. I comandi nel profilo utente remoto, compresi i comandi per aggiungere snap-in di Windows PowerShell e modificare il prompt dei comandi, vengono eseguiti prima che venga visualizzato il prompt remoto.

-- Tramite Enter-PSSession vengono utilizzate le impostazioni cultura dell'interfaccia utente impostate nel computer locale per la sessione interattiva. Per trovare le impostazioni cultura dell'interfaccia utente locali, utilizzare la variabile automatica $UICulture.

-- Per Enter-PSSession sono necessari i cmdlet Get-Command, Out-Default e Exit-PSSession. Se questi cmdlet non sono inclusi nella configurazione di sessione nel computer remoto, il comando Enter-PSSession avrà esito negativo.

-- A differenza di Invoke-Command, che analizza e interpreta i comandi prima di inviarli al computer remoto, Enter-PSSession invia direttamente i comandi al computer remoto senza interpretazione.

Esempio 1

C:\PS>Enter-PSSession

LocalHost\PS>

Descrizione
-----------
Tramite questo comando viene avviata una sessione interattiva nel computer locale. Il prompt dei comandi viene modificato per indicare che ora i comandi sono in esecuzione in una sessione diversa.

I comandi immessi vengono eseguiti nella nuova sessione e i risultati vengono restituiti alla sessione predefinita come testo.






Esempio 2

C:\PS>enter-pssession -computer Server01

Server01\PS> get-process powershell > C:\ps-test\process.txt

Server01\PS> exit-pssession
C:\PS>

C:\PS> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\process.txt

Descrizione
-----------
Tramite questo comando viene illustrato come utilizzare una sessione interattiva con un computer remoto.

Nel primo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva con Server01, un computer remoto. Quando la sessione viene avviata, il prompt dei comandi viene modificato per includere il nome del computer.

Nel secondo comando si ottiene il processo di PowerShell e reindirizza l'output al file Process.txt. Il comando viene inviato al computer remoto e il file viene salvato in tale computer. 

Nel terzo comando viene utilizzata la parola chiave Exit per terminare la sessione interattiva e chiudere la connessione.

Nel quarto comando viene confermato che il file Process.txt si trova nel computer remoto. Un comando Get-ChildItem ("dir") nel computer locale non è in grado di trovare il file.






Esempio 3

C:\PS>$s = new-pssession -computername Server01

C:\PS> Enter-PSSession -session $s

Server01\PS>

Descrizione
-----------
Tramite questi comandi viene utilizzato il parametro Session di Enter-PSSession per eseguire la sessione interattiva in una sessione di Windows PowerShell esistente (PSSession).






Esempio 4

C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01

Server01\PS>

Descrizione
-----------
Tramite questo comando viene avviata una sessione interattiva con il computer Server01. Viene utilizzato il parametro Port per specificare la porta e il parametro Credential per specificare l'account di un utente con autorizzazione per la connessione al computer remoto.






Esempio 5

C:\PS>Enter-PSSession -computername Server01

Server01:\PS> Exit-PSSession

C:\PS>

Descrizione
-----------
In questo esempio viene illustrato come avviare e interrompere una sessione interattiva. Nel primo comando viene utilizzato il cmdlet Enter-PSSession per avviare una sessione interattiva con il computer Server01. 

Nel secondo comando viene utilizzato il cmdlet Exit-PSSession per terminare la sessione. È anche possibile utilizzare la parola chiave Exit per terminare la sessione interattiva. Exit-PSSession ed Exit hanno lo stesso effetto.






Vedere anche




Argomenti della Guida