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-PSSession
cmdlet , Connect-PSSession
o 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:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
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
È possibile inviare tramite pipe un nome computer come stringa a questo cmdlet.
È 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-Command
cmdlet , Out-Default
e 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:
- opzioni della riga di comando
- File di configurazione dell'utente (~/.ssh/config)
- 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).