Condividi tramite


Enter-PSSession

Avvia una sessione interattiva con un computer remoto.

Sintassi

ComputerName (impostazione predefinita).

Enter-PSSession
    [-ComputerName] <String>
    [[-Credential] <PSCredential>]
    [-EnableNetworkAccess]
    [-ConfigurationName <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-ApplicationName <String>]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

SSHHost

Enter-PSSession
    [-HostName] <String>
    [-Options <Hashtable>]
    [-Port <Int32>]
    [-UserName <String>]
    [-KeyFilePath <String>]
    [-Subsystem <String>]
    [-ConnectingTimeout <Int32>]
    [-SSHTransport]
    [<CommonParameters>]

Session

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

Uri

Enter-PSSession
    [[-ConnectionUri] <Uri>]
    [[-Credential] <PSCredential>]
    [-EnableNetworkAccess]
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-SessionOption <PSSessionOption>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [<CommonParameters>]

InstanceId

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

Id

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

Name

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

VMId

Enter-PSSession
    [-VMId] <Guid>
    [-Credential] <PSCredential>
    [-ConfigurationName <String>]
    [<CommonParameters>]

VMName

Enter-PSSession
    [-VMName] <String>
    [-Credential] <PSCredential>
    [-ConfigurationName <String>]
    [<CommonParameters>]

ContainerId

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 sul computer remoto, proprio come se si stesse digitando direttamente sul computer remoto. È possibile avere una sola sessione interattiva alla volta.

In genere, il parametro ComputerName viene utilizzato 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: Avvio di 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 una sessione diversa.

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

Esempio 2: Utilizzo di 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 viene modificato in modo da 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 sul computer remoto.

Il terzo comando usa la exit parola chiave per terminare la sessione interattiva e chiudere la connessione. Il quarto comando conferma che il file Process.txt si trova sul 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 lavorare in una sessione interattiva con un computer remoto.

Esempio 3: Utilizzo del 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 Porta e Credenziale

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

Questo comando avvia una sessione interattiva con il computer Server01. Utilizza il parametro Port per specificare la porta e il parametro Credential per specificare l'account di un utente che dispone dell'autorizzazione per connettersi al computer remoto.

Esempio 5: Interruzione di una sessione interattiva

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

In questo esempio viene illustrato 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 exit parola chiave 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 di questa 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 MaximumConnectionRedirectionCount sessione. Utilizzare il parametro MaximumRedirection del New-PSSessionOption cmdlet o impostare la proprietà MaximumConnectionRedirectionCount della $PSSessionOption variabile di preferenza. Il valore predefinito è 5.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 usi. 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Authentication

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

  • Predefinito
  • Fondamentale
  • Credssp
  • Sommario
  • Kerberos
  • Negoziare
  • 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 di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, è possibile usare le credenziali passate per controllare la sessione di rete.

Proprietà dei parametri

Tipo:AuthenticationMechanism
Valore predefinito:None
Valori accettati:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-CertificateThumbprint

Specifica il certificato di chiave pubblica digitale (X509) di un account utente che dispone dell'autorizzazione per eseguire questa azione. Immettere l'impronta digitale del certificato.

I certificati vengono usati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

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

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ComputerName

Specifica un nome di 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. È 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 WinRM 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.

Annotazioni

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

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:CN

Set di parametri

ComputerName
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-ConfigurationName

Specifica la configurazione di sessione usata per la sessione interattiva.

Immettere un nome di configurazione o l'URI completo della risorsa 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
VMId
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
VMName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
ContainerId
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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

Proprietà dei parametri

Tipo:Int32
Valore predefinito:unlimited
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 Transport 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 .

Proprietà dei parametri

Tipo:Uri
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:URI (Identificatore Uniforme delle Risorse), CU

Set di parametri

Uri
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-ContainerId

Specifica l'ID di un contenitore.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ContainerId
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Credential

Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio User01 o Domain01\User01oppure immettere un oggetto PSCredential generato dal cmdlet Get-Credential. 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.

Annotazioni

Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:Current user
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
Uri
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
VMId
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False
VMName
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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 recuperano dati da altri computer. Ad esempio, è possibile eseguire un comando nella sessione che copia i 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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 HostName 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 .

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Id
Posizione:0
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-InstanceId

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

L'ID 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 utilizzare il parametro ComputerName per avviare una sessione temporanea.

Proprietà dei parametri

Tipo:Guid
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

InstanceId
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:IdentityFilePath

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 utilizzare il parametro ComputerName per avviare una sessione temporanea.

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

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Name
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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 coppia chiave-valore passata nella Port.

Proprietà dei parametri

Tipo:Hashtable
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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, il computer remoto deve essere in ascolto 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 WinRM 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 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.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-RunAsAdministrator

Indica che la sessione PSSession viene eseguita come amministratore.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ContainerId
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 utilizzando questo parametro. Se si immette una variabile che contiene più di una PSSession, il comando non riesce.

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

Proprietà dei parametri

Tipo:PSSession
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

Session
Posizione:0
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-SessionOption

Imposta le opzioni avanzate per la sessione. Immettere un oggetto SessionOption , ad esempio uno creato utilizzando il New-PSSessionOption cmdlet, o una tabella hash in cui le chiavi sono nomi di opzioni di sessione e i valori sono valori di opzioni 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 della 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.

Proprietà dei parametri

Tipo:PSSessionOption
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
Uri
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Valori accettati:true
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 .

Proprietà dei parametri

Tipo:String
Valore predefinito:Powershell
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

SSHHost
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ComputerName
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-VMId

Specifica l'ID di una macchina virtuale.

Proprietà dei parametri

Tipo:Guid
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:VMGuid

Set di parametri

VMId
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-VMName

Specifica il nome di una macchina virtuale.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

VMName
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

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 alcun output.

Note

PowerShell include gli alias seguenti per Enter-PSSession:

  • Tutte le piattaforme:
    • etsn

Per connettersi a un computer remoto, è necessario essere membri del gruppo Administrators del 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 usano WinRM. PowerShell 7.1 consente Enter-PSSession e Enter-PSHostProcess di funzionare da 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).