Condividi tramite


Enter-PSSession

Avvia una sessione interattiva con un computer remoto.

Sintassi

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [[-Credential] <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-HostName] <String>
     [-Options <Hashtable>]
     [-Port <Int32>]
     [-UserName <String>]
     [-KeyFilePath <String>]
     [-Subsystem <String>]
     [-ConnectingTimeout <Int32>]
     [-SSHTransport]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [[-Credential] <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMId] <Guid>
     [-Credential] <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     [-Credential] <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-ContainerId] <String>
     [-ConfigurationName <String>]
     [-RunAsAdministrator]
     [<CommonParameters>]

Descrizione

Il Enter-PSSession cmdlet avvia una sessione interattiva con un singolo computer remoto. Durante la sessione, i comandi digitati vengono eseguiti nel computer remoto, come se si digitasse direttamente nel computer remoto. È possibile eseguire una sola sessione interattiva per volta.

In genere, si usa il parametro ComputerName per specificare il nome del computer remoto. Tuttavia, è anche possibile usare una sessione creata usando il New-PSSession cmdlet per la sessione interattiva. Tuttavia, non è possibile usare i Disconnect-PSSessioncmdlet , Connect-PSSessiono Receive-PSSession per disconnettersi o riconnettersi a una sessione interattiva.

A partire da PowerShell 6.0 è possibile usare Secure Shell (SSH) per stabilire una connessione a un computer remoto. È necessario disporre di SSH nel computer locale e il computer remoto deve essere configurato con un endpoint SSH di PowerShell. Il vantaggio di una sessione remota di PowerShell basata su SSH è che funziona su più piattaforme (Windows, Linux, macOS). Per la comunicazione remota basata su SSH si usa il set di parametri HostName per specificare il computer remoto e le informazioni di connessione pertinenti. Per altre informazioni su come configurare la comunicazione remota SSH di PowerShell, vedere Comunicazione remota di PowerShell su SSH.

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

Importante

Enter-PSSession è progettato per sostituire la sessione interattiva corrente con una nuova sessione remota interattiva. Non è consigliabile chiamarlo dall'interno di una funzione o uno script o passandolo come comando all'eseguibile pwsh .

Esempio

Esempio 1: Avviare una sessione interattiva

PS> Enter-PSSession
[localhost]: PS>

Questo comando avvia una sessione interattiva nel computer locale. Il prompt dei comandi cambia per indicare che si stanno eseguendo comandi in un'altra sessione.

I comandi immessi vengono eseguiti nella nuova sessione e i risultati vengono restituiti nella sessione predefinita sotto forma di testo.

Esempio 2: Usare una sessione interattiva

Il primo comando usa il Enter-PSSession cmdlet per avviare una sessione interattiva con Server01, un computer remoto. All'avvio della sessione, il prompt dei comandi cambia per includere il nome del computer.

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

Il terzo comando usa la parola chiave Exit per terminare la sessione interattiva e chiudere la connessione. Il quarto comando conferma che il file Process.txt si trova nel computer remoto. Un Get-ChildItem comando ("dir") nel computer locale non riesce a trovare il file.

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> 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

Questo comando mostra come operare in una sessione interattiva con un computer remoto.

Esempio 3: Usare il parametro Session

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

Questi comandi usano il parametro Session di Enter-PSSession per eseguire la sessione interattiva in una sessione di PowerShell esistente (PSSession).

Esempio 4: Avviare una sessione interattiva e specificare i parametri Port e Credential

PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>

Questo comando avvia una sessione interattiva nel computer Server01. Usa il parametro Port per specificare la porta e il parametro Credential per specificare l'account di un utente autorizzato a connettersi al computer remoto.

Esempio 5: Arrestare una sessione interattiva

PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>

Questo esempio mostra come avviare e arrestare una sessione interattiva. Il primo comando usa il Enter-PSSession cmdlet per avviare una sessione interattiva con il computer Server01.

Il secondo comando usa il Exit-PSSession cmdlet per terminare la sessione. È anche possibile usare la parola chiave Exit per terminare la sessione interattiva. Exit-PSSession e Exit hanno lo stesso effetto.

Esempio 6: Avviare una sessione interattiva con SSH

PS> Enter-PSSession -HostName UserA@LinuxServer01

Questo esempio illustra come avviare una sessione interattiva usando Secure Shell (SSH). Se SSH è configurato nel computer remoto per l'uso delle password, viene richiesto di immettere una password. In caso contrario, è necessario usare l'autenticazione utente basata su chiave.

Esempio 7: Avviare una sessione interattiva usando SSH con una porta e una chiave di autenticazione utente

PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath c:\sshkeys\userAKey_rsa

Questo esempio illustra come avviare una sessione interattiva usando SSH. Il nome utente e il numero di porta SSH vengono specificati come parti del valore del parametro HostName . Il parametro KeyFilePath specifica il percorso di una chiave RSA utilizzata per autenticare l'utente nel computer remoto.

Esempio 8: Avviare una sessione interattiva usando le opzioni SSH

$options = @{
    Port=22
    User = 'UserA'
    Host = 'LinuxServer02'
}
Enter-PSSession -KeyFilePath c:\sshkeys\userAKey_rsa -Options $options

Questo esempio illustra come avviare una sessione interattiva usando SSH. Il parametro Options accetta una tabella hash di valori passati come opzioni al comando sottostante ssh che ha stabilito la connessione al sistema remoto.

Parametri

-AllowRedirection

Consente il reindirizzamento della connessione a un URI (Uniform Resource Identifier) alternativo. Per impostazione predefinita, il reindirizzamento non è consentito.

Quando si usa il parametro ConnectionURI , la destinazione remota può restituire un'istruzione per il reindirizzamento a un URI diverso. Per impostazione predefinita, PowerShell non reindirizza le connessioni, ma è possibile usare questo parametro per consentire il reindirizzamento della connessione.

È anche possibile limitare il numero di reindirizzamenti della connessione modificando il valore dell'opzione di sessione MaximumConnectionRedirectionCount . Utilizzare il parametro MaximumRedirection del New-PSSessionOption cmdlet o impostare la proprietà MaximumConnectionRedirectionCount della $PSSessionOption variabile di preferenza. Il valore predefinito è 5.

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

-ApplicationName

Specifica il segmento dell'URI di connessione corrispondente al nome dell'applicazione. Usare questo parametro per specificare il nome dell'applicazione quando non si usa il parametro ConnectionURI nel comando .

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

Il servizio WinRM usa il nome dell'applicazione per selezionare un listener per gestire la richiesta di connessione. Il valore di questo parametro deve corrispondere al valore della proprietà URLPrefix di un listener nel computer remoto.

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

-Authentication

Specifica il meccanismo usato per autenticare le credenziali dell'utente. I valori validi per questo parametro sono:

  • Predefiniti
  • Di base
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Il valore predefinito è Default.

L'autenticazione CredSSP è disponibile solo in Windows Vista, Windows Server 2008 e versioni successive del sistema operativo Windows.

Per altre informazioni sui valori di questo parametro, vedere AuthenticationMechanism Enum.

Attenzione

L'autenticazione credSSP (Credential Security Support Provider), in cui le credenziali dell'utente vengono passate a un computer remoto da autenticare, è progettato 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 infatti il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.

Tipo:AuthenticationMechanism
Valori accettati:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
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 agli account utente locali; non funzionano con gli account di dominio.

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

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

-ComputerName

Specifica un nome computer. Questo cmdlet avvia una sessione interattiva con il computer remoto specificato. Immettere un solo nome di computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, l'indirizzo IP o il nome di dominio completo del computer remoto. È anche possibile inviare tramite pipe un nome computer a Enter-PSSession.

Per usare un indirizzo IP nel valore del parametro ComputerName , il comando deve includere il parametro Credential . Inoltre, il computer deve essere configurato per il trasporto HTTPS o l'indirizzo IP del computer remoto deve essere incluso nell'elenco TrustedHosts di Gestione remota Windows nel computer locale. Per istruzioni sull'aggiunta di un nome computer all'elenco TrustedHosts, vedere "Come aggiungere un computer all'elenco host attendibile" in about_Remote_Troubleshooting.

Nota

Nel sistema operativo Windows, per includere il computer locale nel valore del parametro ComputerName , è necessario avviare PowerShell con l'opzione Esegui come amministratore.

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

-ConfigurationName

Specifica la configurazione di sessione usata per la sessione interattiva.

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

Se usato con SSH, specifica il sottosistema da usare nella destinazione, come definito in sshd_config. Il valore predefinito per SSH è il powershell sottosistema .

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 $PSSessionConfigurationName preferenza nel computer locale. Se questa variabile di preferenza non è impostata, il valore predefinito è Microsoft.PowerShell. Per altre informazioni, vedere about_Preference_Variables.

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

-ConnectingTimeout

Specifica la quantità di tempo in millisecondi consentita per il completamento della connessione SSH iniziale. Se la connessione non viene completata entro l'ora specificata, viene restituito un errore.

Questo parametro è stato introdotto in PowerShell 7.2

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

-ConnectionUri

Specifica un URI che definisce l'endpoint di connessione per la sessione. L'URI deve essere completo. Il formato di questa stringa è il seguente:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Il valore predefinito è il seguente:

http://localhost:5985/WSMAN

Se non si specifica un ConnectionURI, è possibile usare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori ConnectionURI.

I valori validi per il segmento Trasporto dell'URI sono HTTP e HTTPS. Se si specifica un URI di connessione con un segmento Trasporto, ma non si specifica una porta, la sessione viene creata usando le porte standard: 80 per HTTP e 443 per HTTPS. Per usare le porte predefinite per la comunicazione remota di PowerShell, specificare la porta 5985 per HTTP o 5986 per HTTPS.

Se il computer di destinazione reindirizza la connessione a un URI diverso, PowerShell impedisce il reindirizzamento a meno che non si usi il parametro AllowRedirection nel comando .

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

-ContainerId

Specifica l'ID di un contenitore.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
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 o Domain01\User01, oppure immettere un oggetto PSCredential generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesto di immettere la password.

Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.

Nota

Per altre informazioni sulla protezione dei dati SecureString , vedere How secure is SecureString?.

Tipo:PSCredential
Posizione:1
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-EnableNetworkAccess

Indica che questo cmdlet aggiunge un token di sicurezza interattivo alle sessioni di loopback. Il token interattivo consente di eseguire comandi nella sessione di loopback che ottengono dati da altri computer. Ad esempio, è possibile eseguire un comando nella sessione che copia file XML da un computer remoto al computer locale.

Una sessione di loopback è una sessione PSSession che ha origine e termina nello stesso computer. Per creare una sessione di loopback, omettere il parametro ComputerName o impostarne il valore su . (punto), localhost o il nome del computer locale.

Per impostazione predefinita, le sessioni di loopback vengono create usando un token di rete, che potrebbe non fornire autorizzazioni sufficienti per l'autenticazione nei computer remoti.

Il parametro EnableNetworkAccess è efficace solo nelle sessioni di loopback. Se si usa EnableNetworkAccess quando si crea una sessione in un computer remoto, il comando ha esito positivo, ma il parametro viene ignorato.

È anche possibile consentire l'accesso remoto in una sessione di loopback usando il valore CredSSP del parametro Authentication , che delega le credenziali di sessione ad altri computer.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-HostName

Specifica un nome computer per una connessione basata su Secure Shell (SSH). Questo è simile al parametro ComputerName , ad eccezione del fatto che la connessione al computer remoto viene effettuata tramite SSH anziché Windows WinRM. Questo parametro supporta la specifica del nome utente e/o della porta come parte del valore del parametro del nome host usando il formato user@hostname:port. Il nome utente e/o la porta specificata come parte del nome host ha la precedenza sui -UserName parametri e -Port , se specificato. In questo modo è possibile passare più nomi di computer a questo parametro in cui alcuni hanno nomi utente e/o porte specifici, mentre altri usano il nome utente e/o la -UserName porta dai parametri e -Port .

Questo parametro è stato introdotto in PowerShell 6.0.

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

-Id

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

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

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

-InstanceId

Specifica l'ID dell'istanza di una sessione esistente. Enter-PSSession utilizza la sessione specificata per la sessione interattiva.

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

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

-KeyFilePath

Specifica un percorso del file di chiave usato da Secure Shell (SSH) per autenticare un utente in un computer remoto.

SSH consente di eseguire l'autenticazione utente tramite chiavi private/pubbliche come alternativa all'autenticazione della password di base. Se il computer remoto è configurato per l'autenticazione della chiave, questo parametro può essere usato per fornire la chiave che identifica l'utente.

Questo parametro è stato introdotto in PowerShell 6.0.

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

-Name

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

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

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

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

-Options

Specifica una tabella hash delle opzioni SSH usate per la connessione a una sessione remota basata su SSH. Le opzioni possibili sono i valori supportati dalla versione basata su Unix del comando ssh .

Tutti i valori passati in modo esplicito dai parametri hanno la precedenza sui valori passati nella tabella hash Options . Ad esempio, l'uso del parametro Port esegue l'override di qualsiasi Port coppia chiave-valore passata nella tabella hash Options.

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

-Port

Specifica la porta di rete nel computer remoto usato per questo comando.

In PowerShell 6.0 questo parametro è stato incluso nel set di parametri HostName che supporta le connessioni Secure Shell (SSH).

WinRM (set di parametri ComputerName)

Per connettersi a un computer remoto, è necessario che il computer remoto sia in attesa sulla porta usata dalla connessione. Le porte predefinite sono 5985, ovvero la porta WinRM per HTTP e 5986, ovvero la porta WinRM per HTTPS.

Prima di usare una porta alternativa, è necessario configurare il listener di Gestione remota Windows nel computer remoto per l'ascolto su tale porta. Usare 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="\<port-number\>"}

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

SSH (set di parametri HostName)

Per connettersi a un computer remoto, il computer remoto deve essere configurato con il servizio SSH (SSHD) e deve essere in ascolto sulla porta usata dalla connessione. La porta predefinita per SSH è 22.

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

-RunAsAdministrator

Indica che la sessione PSSession viene eseguita come amministratore.

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

-Session

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

Immettere una variabile contenente un oggetto sessione o un comando che crea o ottiene un oggetto sessione, ad esempio un New-PSSession comando o Get-PSSession . È anche possibile inviare tramite pipe un oggetto sessione a Enter-PSSession. È possibile inviare una sola sessione PSSession usando questo parametro. Se si immette una variabile contenente più di una sessione PSSession, il comando ha esito negativo.

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

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

-SessionOption

Imposta opzioni avanzate per la sessione. Immettere un oggetto SessionOption , ad esempio quello creato usando il New-PSSessionOption cmdlet o una tabella hash in cui le chiavi sono nomi di opzioni di sessione e i valori sono valori di opzione di sessione.

I valori predefiniti per le opzioni sono determinati dal valore della variabile di $PSSessionOption preferenza, se impostato. In caso contrario, i valori predefiniti vengono stabiliti dalle opzioni impostate nella configurazione di sessione.

I valori delle opzioni di sessione hanno la precedenza sui valori predefiniti per le sessioni impostate nella $PSSessionOption variabile di preferenza e nella configurazione della sessione. Tuttavia, non hanno la precedenza sui valori massimi, sulle quote o sui limiti impostati nella configurazione della sessione.

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

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

-SSHTransport

Indica che la connessione remota viene stabilita tramite Secure Shell (SSH).

Per impostazione predefinita, PowerShell usa Windows WinRM per connettersi a un computer remoto. Questa opzione forza PowerShell a usare il set di parametri HostName per stabilire una connessione remota basata su SSH.

Questo parametro è stato introdotto in PowerShell 6.0.

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

-Subsystem

Specifica il sottosistema SSH usato per la nuova sessione PSSession.

Specifica il sottosistema da usare nella destinazione come definito in sshd_config. Il sottosistema avvia una versione specifica di PowerShell con parametri predefiniti. Se il sottosistema specificato non esiste nel computer remoto, il comando ha esito negativo.

Se questo parametro non viene usato, il valore predefinito è il powershell sottosistema .

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

-UserName

Specifica il nome utente per l'account usato per creare una sessione nel computer remoto. Il metodo di autenticazione utente dipende dalla configurazione di Secure Shell (SSH) nel computer remoto.

Se SSH è configurato per l'autenticazione password di base, viene richiesto di immettere la password utente.

Se SSH è configurato per l'autenticazione utente basata su chiave, uou non viene richiesto di immettere una password. È necessario specificare un percorso di un file di chiave SSH. Se il file di chiave utente si trova in un percorso noto SSH, il parametro KeyFilePath non è necessario. L'autenticazione utente viene eseguita automaticamente in base al nome utente. Per altre informazioni, vedere la documentazione SSH sull'autenticazione utente basata su chiave.

Se il parametro UserName non viene specificato, viene usato il nome utente connesso corrente.

Questo parametro è stato introdotto in PowerShell 6.0.

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

-UseSSL

Indica che questo cmdlet usa il protocollo SSL (Secure Sockets Layer) 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 è una protezione aggiuntiva che invia i dati attraverso una connessione HTTPS anziché una connessione HTTP.

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

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

-VMId

Specifica l'ID di una macchina virtuale.

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

-VMName

Specifica il nome di una macchina virtuale.

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

Input

String

È possibile inviare tramite pipe un nome computer come stringa a questo cmdlet.

PSSession

È possibile inviare tramite pipe un oggetto sessione a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

PowerShell include gli alias seguenti per Enter-PSSession:

  • Tutte le piattaforme:
    • etsn

Per connettersi a un computer remoto, è necessario essere un membro del gruppo Administrators in tale computer remoto. Per avviare una sessione interattiva nel computer locale, è necessario avviare PowerShell con l'opzione Esegui come amministratore .

Quando si usa Enter-PSSession, il profilo utente nel computer remoto viene usato per la sessione interattiva. I comandi nel profilo utente remoto, inclusi i comandi per aggiungere moduli di PowerShell e per modificare il prompt dei comandi, eseguire prima che venga visualizzato il prompt remoto.

Enter-PSSession usa l'impostazione delle impostazioni cultura dell'interfaccia utente nel computer locale per la sessione interattiva. Per trovare le impostazioni cultura dell'interfaccia utente locali, usare la $UICulture variabile automatica.

Enter-PSSession richiede i Get-Commandcmdlet , Out-Defaulte Exit-PSSession . Se questi cmdlet non sono inclusi nella configurazione della sessione nel computer remoto, i Enter-PSSession comandi hanno esito negativo.

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

Se la sessione da immettere è occupata nell'elaborazione di un comando, potrebbe verificarsi un ritardo prima che PowerShell risponda al Enter-PSSession comando. Si è connessi non appena la sessione è disponibile. Per annullare il Enter-PSSession comando, premere CTRL+C.

Il set di parametri HostName è stato incluso a partire da PowerShell 6.0. È stato aggiunto per fornire la comunicazione remota di PowerShell basata su Secure Shell (SSH). Ssh e PowerShell sono supportati in più piattaforme (Windows, Linux, macOS) e la comunicazione remota di PowerShell funziona su queste piattaforme in cui PowerShell e SSH sono installati e configurati. Questo è separato dalla comunicazione remota di Windows precedente basata su WinRM e gran parte delle funzionalità e limitazioni specifiche di WinRM non si applicano. Ad esempio, le quote basate su WinRM, le opzioni di sessione, la configurazione dell'endpoint personalizzata e le funzionalità di disconnessione/riconnessione non sono attualmente supportate. Per altre informazioni su come configurare la comunicazione remota SSH di PowerShell, vedere Comunicazione remota di PowerShell su SSH.

Prima di PowerShell 7.1, la comunicazione remota su SSH non supportava sessioni remote di secondo hop. Questa funzionalità era limitata alle sessioni che usavano WinRM. PowerShell 7.1 consente a Enter-PSSession e Enter-PSHostProcess di funzionare dall'interno di qualsiasi sessione remota interattiva.

L'eseguibile ssh ottiene i dati di configurazione dalle origini seguenti nell'ordine seguente:

  1. opzioni della riga di comando
  2. File di configurazione dell'utente (~/.ssh/config)
  3. file di configurazione a livello di sistema (/etc/ssh/ssh_config)

I parametri del cmdlet seguenti vengono mappati in ssh parametri e opzioni:

Parametro del cmdlet Parametro ssh opzione ssh -o equivalente
-KeyFilePath -i <KeyFilePath> -o IdentityFile=<KeyFilePath>
-UserName -l <UserName> -o User=<UserName>
-Port -p <Port> -o Port=<Port>
-ComputerName -Subsystem -s <ComputerName> <Subsystem> -o Host=<ComputerName>

Tutti i valori passati in modo esplicito dai parametri hanno la precedenza sui valori passati nella tabella hash Options . Per altre informazioni sui file, vedere ssh_config(5).For more information about ssh_config files, see ssh_config(5).