Enter-PSSession

Inicia una sesión interactiva con un equipo remoto.

Syntax

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>]

Description

El Enter-PSSession cmdlet inicia una sesión interactiva con un único equipo remoto. Durante la sesión, los comandos que escriba se ejecutan en el equipo remoto, como si estuviera escribiendo directamente en el equipo remoto. Solo puede tener una sesión interactiva al mismo tiempo.

Normalmente, se usa el parámetro ComputerName para especificar el nombre del equipo remoto. Sin embargo, también puede usar una sesión que cree mediante el New-PSSession cmdlet para la sesión interactiva. Sin embargo, no puede usar los Disconnect-PSSessioncmdlets , Connect-PSSessiono Receive-PSSession para desconectar o volver a conectarse a una sesión interactiva.

A partir de PowerShell 6.0, puede usar Secure Shell (SSH) para establecer una conexión a un equipo remoto, si SSH está disponible en el equipo local y el equipo remoto está configurado con un punto de conexión SSH de PowerShell. La ventaja de una sesión remota de PowerShell basada en SSH es que funciona en varias plataformas (Windows, Linux, macOS). Para la comunicación remota basada en SSH, use el parámetro HostName establecido para especificar el equipo remoto y la información de conexión pertinente. Para obtener más información sobre cómo configurar la comunicación remota ssh de PowerShell, consulte Comunicación remota de PowerShell a través de SSH.

Para finalizar la sesión interactiva y desconectar del equipo remoto, use el Exit-PSSession cmdlet o escriba exit.

Ejemplos

Ejemplo 1: Iniciar una sesión interactiva

PS> Enter-PSSession
[localhost]: PS>

Este comando inicia una sesión interactiva en el equipo local. El símbolo del sistema cambia para indicar que ahora está ejecutando los comandos en una sesión diferente.

Los comandos que especifique se ejecutan en la nueva sesión y los resultados se devuelven a la sesión predeterminada como texto.

Ejemplo 2: Trabajar con una sesión interactiva

El primer comando usa el Enter-PSSession cmdlet para iniciar una sesión interactiva con Server01, un equipo remoto. Cuando se inicia la sesión, el símbolo del sistema cambia para incluir el nombre del equipo.

El segundo comando obtiene el proceso de PowerShell y redirige la salida al Process.txt archivo. El comando se envía al equipo remoto y el archivo se guarda en el equipo remoto.

El tercer comando usa la palabra clave Exit para finalizar la sesión interactiva y cerrar la conexión. El cuarto comando confirma que el archivo Process.txt está en el equipo remoto. Un Get-ChildItem comando ("dir") en el equipo local no encuentra el archivo.

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

Este comando muestra cómo trabajar en una sesión interactiva con un equipo remoto.

Ejemplo 3: Uso del parámetro Session

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

Estos comandos usan el parámetro Session de Enter-PSSession para ejecutar la sesión interactiva en una sesión de PowerShell existente (PSSession).

Ejemplo 4: Iniciar una sesión interactiva y especificar los parámetros Port y Credential

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

Este comando inicia una sesión interactiva con el equipo Server01. Usa el parámetro Port para especificar el puerto y el parámetro Credential para especificar la cuenta de un usuario que tiene permiso para conectarse al equipo remoto.

Ejemplo 5: Detener una sesión interactiva

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

Este ejemplo muestra cómo iniciar y detener una sesión interactiva. El primer comando usa el Enter-PSSession cmdlet para iniciar una sesión interactiva con el equipo Server01.

El segundo comando usa el Exit-PSSession cmdlet para finalizar la sesión. También puede usar la palabra clave Exit para finalizar la sesión interactiva. Exit-PSSession y Exit tienen el mismo efecto.

Ejemplo 6: Inicio de una sesión interactiva mediante SSH

PS> Enter-PSSession -HostName UserA@LinuxServer01

En este ejemplo se muestra cómo iniciar una sesión interactiva mediante Secure Shell (SSH). Si SSH está configurado en el equipo remoto para usar contraseñas, se le pedirá que escriba una contraseña. De lo contrario, debe usar la autenticación de usuario basada en claves.

Ejemplo 7: Inicio de una sesión interactiva mediante SSH con un puerto y una clave de autenticación de usuario

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

En este ejemplo se muestra cómo iniciar una sesión interactiva mediante SSH. El nombre de usuario y el número de puerto SSH se especifican como partes del valor del parámetro HostName . El parámetro KeyFilePath especifica la ubicación de una clave RSA que se usa para autenticar al usuario en el equipo remoto.

Ejemplo 8: Inicio de una sesión interactiva mediante opciones de SSH

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

En este ejemplo se muestra cómo iniciar una sesión interactiva mediante SSH. El parámetro Options toma una tabla hash de valores que se pasan como opciones al comando subyacente ssh el establecido la conexión al sistema remoto.

Parámetros

-AllowRedirection

Permite redirigir esta conexión a un identificador uniforme de recursos alternativo (URI). De forma predeterminada, no se permite el redireccionamiento.

Cuando se usa el parámetro Conectar ionURI, el destino remoto puede devolver una instrucción para redirigir a otro URI. De forma predeterminada, PowerShell no redirige las conexiones, pero puede usar este parámetro para permitir que redirija la conexión.

También puede limitar el número de veces que se redirige la conexión cambiando el valor de la opción de sesión Maximum Conectar ionRedirectionCount. Use el parámetro MaximumRedirection del New-PSSessionOption cmdlet o establezca la propiedad Maximum Conectar ionRedirectionCount de la $PSSessionOption variable de preferencia. El valor predeterminado es 5.

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

-ApplicationName

Escriba el segmento del nombre de aplicación del URI de conexión. Use este parámetro para especificar el nombre de la aplicación cuando no use el parámetro Conectar ionURI en el comando .

El valor predeterminado es el valor de la $PSSessionApplicationName variable de preferencia en el equipo local. Si no se define esta variable de preferencia, el valor predeterminado es WSMAN. Este valor resulta apropiado en la mayoría de los casos. Para obtener más información, consulte about_Preference_Variables.

El servicio WinRM usa el nombre de la aplicación para seleccionar un agente de escucha para atender la solicitud de conexión. El valor de este parámetro debe coincidir con el valor de la propiedad URLPrefix de un agente de escucha en el equipo remoto.

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

-Authentication

Especifica el mecanismo que se utiliza para autenticar las credenciales del usuario. Los valores permitidos para este parámetro son los siguientes:

  • Valor predeterminado
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

El valor predeterminado es Default.

La autenticación CredSSP solo está disponible en Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo Windows.

Para obtener más información sobre los valores de este parámetro, vea AuthenticationMechanism Enum.

Precaución

La autenticación del proveedor de soporte técnico de seguridad de credenciales (CredSSP), en la que las credenciales del usuario se pasan a un equipo remoto para autenticarse, está diseñada para comandos que requieren autenticación en más de un recurso, como el acceso a un recurso compartido de red remoto. Este mecanismo el riesgo de seguridad de la operación remota. Si el equipo remoto se ve comprometido, las credenciales que se pasen a él se pueden utilizar para controlar la sesión de red.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Especifica el certificado de clave pública digital (X509) de una cuenta de usuario que tiene permiso para realizar esta acción. Escriba la huella digital del certificado.

Los certificados se usan para la autenticación basada en certificados de cliente. Solo se pueden asignar a cuentas de usuario locales y no funcionan con cuentas de dominio.

Para obtener un certificado, use el Get-Item comando o Get-ChildItem en la unidad Cert: de PowerShell.

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

-ComputerName

Especifica un nombre de equipo. Este cmdlet inicia una sesión interactiva con el equipo remoto especificado. Escriba solo un nombre de equipo. La opción predeterminada es el equipo local.

Escriba el nombre de NetBIOS, la dirección IP o el nombre de dominio completo del equipo. También puede canalizar un nombre de equipo a Enter-PSSession.

Para usar una dirección IP en el valor del parámetro ComputerName , el comando debe incluir el parámetro Credential . Además, el equipo debe estar configurado para el transporte HTTPS, o la dirección IP del equipo remoto debe incluirse en la lista WinRM TrustedHosts en el equipo local. Para obtener instrucciones para agregar un nombre de equipo a la lista TrustedHosts, consulte "Cómo agregar un equipo a la lista de hosts de confianza" about_Remote_Troubleshooting.

Nota:

En el sistema operativo Windows, para incluir el equipo local en el valor del parámetro ComputerName , debe iniciar PowerShell con la opción Ejecutar como administrador.

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Especifica la configuración de sesión que se usa para la sesión interactiva.

Escriba un nombre de configuración o el URI de un recurso completo para configurar una sesión. Si especifica solo el nombre de configuración, se antepone el siguiente URI de esquema: http://schemas.microsoft.com/powershell.

Cuando se usa con SSH, especifica el subsistema que se va a usar en el destino tal como se define en sshd_config. El valor predeterminado de SSH es el powershell subsistema.

La configuración de sesión para una sesión se encuentra en el equipo remoto. Si la configuración de sesión especificada no existe en el equipo remoto, el comando produce un error.

El valor predeterminado es el valor de la $PSSessionConfigurationName variable de preferencia en el equipo local. Si no se establece esta variable de preferencia, el valor predeterminado es Microsoft.PowerShell. Para obtener más información, consulte about_Preference_Variables.

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

-ConnectingTimeout

Especifica la cantidad de tiempo en milisegundos permitidos para que se complete la conexión SSH inicial. Si la conexión no se completa en el tiempo especificado, se devuelve un error.

Este parámetro se introdujo en PowerShell 7.2

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

-ConnectionUri

Especifica un URI que define el punto de conexión de la sesión. El identificador URI debe ser completo. El formato de esta cadena es:

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

El valor predeterminado es el siguiente:

http://localhost:5985/WSMAN

Si no especifica un Conectar URI, puede usar los parámetros UseSSL, ComputerName, Port y ApplicationName para especificar los valores de Conectar IONURI.

Los valores válidos para el segmento Transport del identificador URI son HTTP y HTTPS. Si especifica un URI de conexión con un segmento de transporte, pero no especifica un puerto, la sesión se crea mediante puertos estándar: 80 para HTTP y 443 para HTTPS. Para usar los puertos predeterminados para la comunicación remota de PowerShell, especifique el puerto 5985 para HTTP o 5986 para HTTPS.

Si el equipo de destino redirige la conexión a un URI diferente, PowerShell impide el redireccionamiento a menos que use el parámetro AllowRedirection en el comando.

Type:Uri
Aliases:URI, CU
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

Especifica el identificador de un contenedor.

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

-Credential

Especifica una cuenta de usuario con permiso para realizar esta acción. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como User01 o Domain01\User01, o escriba un objeto PSCredential generado por el Get-Credential cmdlet . Si escribe un nombre de usuario, se le pedirá que escriba la contraseña.

Las credenciales se almacenan en un objeto PSCredential y la contraseña se almacena como SecureString.

Nota:

Para obtener más información sobre la protección de datos SecureString , consulte ¿Cómo es secure is SecureString?.

Type:PSCredential
Position:1
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

Indica que este cmdlet agrega un token de seguridad interactivo a las sesiones de bucle invertido. El token interactivo permite ejecutar comandos en la sesión de bucle invertido que obtienen datos de otros equipos. Por ejemplo, se puede ejecutar un comando en la sesión que copie los archivos XML de un equipo remoto al equipo local.

Una sesión de bucle invertido es una PSSession que se origina y termina en el mismo equipo. Para crear una sesión de bucle invertido, omita el parámetro ComputerName o establezca su valor en . (punto), localhost o el nombre del equipo local.

De forma predeterminada, las sesiones de bucle invertido se crean mediante un token de red, lo que podría no proporcionar permiso suficiente para autenticarse en equipos remotos.

El parámetro EnableNetworkAccess solo es efectivo en sesiones de bucle invertido. Si usa EnableNetworkAccess al crear una sesión en un equipo remoto, el comando se realiza correctamente, pero el parámetro se omite.

También puede permitir el acceso remoto en una sesión de bucle invertido mediante el valor CredSSP del parámetro Authentication , que delega las credenciales de sesión en otros equipos.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-HostName

Especifica un nombre de equipo para una conexión basada en Secure Shell (SSH). Esto es similar al parámetro ComputerName , excepto que la conexión al equipo remoto se realiza mediante SSH en lugar de Windows WinRM. Este parámetro admite la especificación del nombre de usuario o el puerto como parte del valor del parámetro de nombre de host mediante el formulario user@hostname:port. El nombre de usuario o el puerto especificados como parte del nombre de host tiene prioridad sobre los -UserName parámetros y -Port , si se especifica. Esto permite pasar varios nombres de equipo a este parámetro donde algunos tienen puertos o nombres de usuario específicos, mientras que otros usan el nombre de usuario o el puerto de los -UserName parámetros y -Port .

Este parámetro se introdujo en PowerShell 6.0.

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

-Id

Especifica el identificador de una sesión existente. Enter-PSSession usa la sesión especificada para la sesión interactiva.

Para buscar el identificador de una sesión, use el Get-PSSession cmdlet .

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

-InstanceId

Especifica el identificador de instancia de una sesión existente. Enter-PSSession usa la sesión especificada para la sesión interactiva.

El identificador de instancia es un GUID. Para buscar el identificador de instancia de una sesión, use el Get-PSSession cmdlet . También puede usar los parámetros Session, Name o ID para especificar una sesión existente. O bien, puede usar el parámetro ComputerName para iniciar una sesión temporal.

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

-KeyFilePath

Especifica una ruta de acceso de archivo de clave usada por Secure Shell (SSH) para autenticar a un usuario en un equipo remoto.

SSH permite que la autenticación de usuario se realice a través de claves privadas o públicas como alternativa a la autenticación de contraseña básica. Si el equipo remoto está configurado para la autenticación de claves, este parámetro se puede usar para proporcionar la clave que identifica al usuario.

Este parámetro se introdujo en PowerShell 6.0.

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

-Name

Especifica el nombre descriptivo de una sesión existente. Enter-PSSession usa la sesión especificada para la sesión interactiva.

Si el nombre especificado coincide con más de una sesión, se produce un error en el comando. También puede usar los parámetros Session, InstanceID o ID para especificar una sesión existente. O bien, puede usar el parámetro ComputerName para iniciar una sesión temporal.

Para establecer un nombre descriptivo para una sesión, use el parámetro Name del New-PSSession cmdlet .

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

-Options

Especifica una tabla hash de las opciones ssh que se usan al conectarse a una sesión remota basada en SSH. Las opciones posibles son los valores admitidos por la versión basada en Unix del comando ssh .

Los valores pasados explícitamente por parámetros tienen prioridad sobre los valores pasados en la tabla hash Options . Por ejemplo, el uso del parámetro Port invalida cualquier Port par clave-valor pasado en la tabla hash Options.

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

-Port

Especifica el puerto de red en el equipo remoto que se usa para este comando.

En PowerShell 6.0, este parámetro se incluyó en el conjunto de parámetros HostName que admite conexiones de Secure Shell (SSH).

WinRM (conjunto de parámetros ComputerName)

Para conectarse a un equipo remoto, este debe estar escuchando en el puerto que usa la conexión. Los puertos predeterminados son 5985, que es el puerto WinRM para HTTP y 5986, que es el puerto winRM para HTTPS.

Antes de usar un puerto alternativo, debe configurar el agente de escucha de WinRM en el equipo remoto para poder escuchar en ese puerto. Utilice los siguientes comandos para configurar el agente de escucha:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

No use el parámetro Port a menos que sea necesario. El puerto establecido en el comando se aplica a todos los equipos o sesiones en los que se ejecuta el comando. Una configuración de puerto alternativo podría impedir que el comando se ejecutara en todos los equipos.

SSH (conjunto de parámetros HostName)

Para conectarse a un equipo remoto, el equipo remoto debe configurarse con el servicio SSH (SSHD) y debe estar escuchando en el puerto que usa la conexión. El puerto predeterminado para SSH es 22.

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

-RunAsAdministrator

Indica que la PSSession se ejecuta como administrador.

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

-Session

Especifica una sesión de PowerShell (PSSession) que se va a usar para la sesión interactiva. Este parámetro usa un objeto de sesión. También puede usar los parámetros Name, InstanceID o ID para especificar una PSSession.

Escriba una variable que contenga un objeto de sesión o un comando que cree o obtenga un objeto de sesión, como un New-PSSession comando o Get-PSSession . También puede canalizar un objeto de sesión a Enter-PSSession. Solo puede enviar una PSSession mediante este parámetro. Si escribe una variable que contiene más de una PSSession, se produce un error en el comando.

Cuando se usa Exit-PSSession o la palabra clave EXIT , finaliza la sesión interactiva, pero la PSSession que creó permanece abierta y disponible para su uso.

Type:PSSession
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Establece opciones avanzadas de la sesión. Escriba un objeto SessionOption , como uno que cree mediante el New-PSSessionOption cmdlet o una tabla hash en la que las claves son nombres de opción de sesión y los valores son valores de opción de sesión.

Los valores predeterminados de las opciones se determinan mediante el valor de la $PSSessionOption variable de preferencia, si se establece. De lo contrario, los valores predeterminados se establecerán mediante las opciones establecidas en la configuración de sesión.

Los valores de opción de sesión tienen prioridad sobre los valores predeterminados de las sesiones establecidas en la $PSSessionOption variable de preferencia y en la configuración de la sesión. Sin embargo, no tienen precedencia sobre los valores máximos, las cuotas o los límites establecidos en la configuración de sesión.

Para obtener una descripción de las opciones de sesión, incluidos los valores predeterminados, consulte New-PSSessionOption. Para obtener información sobre la $PSSessionOption variable de preferencia, consulte about_Preference_Variables. Para más información sobre las configuraciones de sesión, vea about_Session_Configurations.

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

-SSHTransport

Indica que la conexión remota se establece mediante Secure Shell (SSH).

De forma predeterminada, PowerShell usa Windows WinRM para conectarse a un equipo remoto. Este modificador obliga a PowerShell a usar el conjunto de parámetros HostName para establecer una conexión remota basada en SSH.

Este parámetro se introdujo en PowerShell 6.0.

Type:SwitchParameter
Accepted values:true
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Subsystem

Especifica el subsistema SSH usado para la nueva PSSession.

Especifica el subsistema que se va a usar en el destino tal como se define en sshd_config. El subsistema inicia una versión específica de PowerShell con parámetros predefinidos. Si el subsistema especificado no existe en el equipo remoto, se produce un error en el comando.

Si no se usa este parámetro, el valor predeterminado es el subsistema "powershell".

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

-UserName

Especifica el nombre de usuario de la cuenta utilizada para crear una sesión en el equipo remoto. El método de autenticación de usuario dependerá de la configuración de Secure Shell (SSH) en el equipo remoto.

Si SSH está configurado para la autenticación de contraseña básica, se le pedirá la contraseña de usuario.

Si SSH está configurado para la autenticación de usuario basada en claves, se puede proporcionar una ruta de acceso al archivo de clave a través del parámetro KeyFilePath y no se producirá ningún mensaje de contraseña. Tenga en cuenta que si el archivo de clave de usuario del cliente se encuentra en una ubicación conocida de SSH, el parámetro KeyFilePath no es necesario para la autenticación basada en claves y la autenticación de usuario se producirá automáticamente en función del nombre de usuario. Consulte la documentación de SSH sobre la autenticación de usuario basada en claves para obtener más información.

No es un parámetro obligatorio. Si no se especifica ningún parámetro UserName , se usa el nombre de usuario del inicio de sesión actual para la conexión.

Este parámetro se introdujo en PowerShell 6.0.

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

-UseSSL

Indica que este cmdlet usa el protocolo Capa de sockets seguros (SSL) para establecer una conexión con el equipo remoto. De forma predeterminada, no se usa SSL.

WS-Management cifra todo el contenido de PowerShell transmitido a través de la red. El parámetro UseSSL es una protección adicional que envía los datos a través de una conexión HTTPS en lugar de una conexión HTTP.

Si usa este parámetro, pero SSL no está disponible en el puerto que se usa para el comando, se produce un error en el comando.

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

-VMId

Especifica el identificador de una máquina virtual.

Type:Guid
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Especifica el nombre de una máquina virtual.

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

Entradas

String

Puede canalizar un nombre de equipo como una cadena a este cmdlet.

PSSession

Puede canalizar un objeto de sesión a este cmdlet.

Salidas

None

Este cmdlet no devuelve ningún resultado.

Notas

PowerShell incluye los siguientes alias para Enter-PSSession:

  • Todas las plataformas:
    • etsn

Para conectarse a un equipo remoto, debe ser miembro del grupo Administradores en el equipo remoto. Para iniciar una sesión interactiva en el equipo local, debe iniciar PowerShell con la opción Ejecutar como administrador .

Cuando se usa Enter-PSSession, el perfil de usuario en el equipo remoto se usa para la sesión interactiva. Los comandos del perfil de usuario remoto, incluidos los comandos para agregar módulos de PowerShell y cambiar el símbolo del sistema, se ejecutan antes de que se muestre el símbolo del sistema remoto.

Enter-PSSession usa la configuración de referencia cultural de la interfaz de usuario en el equipo local para la sesión interactiva. Para buscar la referencia cultural de la interfaz de usuario local, use la $UICulture variable automática.

Enter-PSSession requiere los Get-Commandcmdlets , Out-Defaulty Exit-PSSession . Si estos cmdlets no se incluyen en la configuración de sesión en el equipo remoto, se produce un error en los Enter-PSSession comandos.

A diferencia Invoke-Commandde , que analiza e interpreta los comandos antes de enviarlos al equipo remoto, Enter-PSSession envía los comandos directamente al equipo remoto sin interpretación.

Si la sesión que desea escribir está ocupada procesando un comando, puede haber un retraso antes de que PowerShell responda al Enter-PSSession comando. Está conectado tan pronto como la sesión esté disponible. Para cancelar el Enter-PSSession comando, presione CTRL+C.

El conjunto de parámetros HostName se incluyó a partir de PowerShell 6.0. Se agregó para proporcionar comunicación remota de PowerShell basada en Secure Shell (SSH). Tanto SSH como PowerShell se admiten en varias plataformas (Windows, Linux, macOS) y la comunicación remota de PowerShell funcionan en estas plataformas en las que PowerShell y SSH están instalados y configurados. Esto es independiente de la comunicación remota anterior de Windows solo basada en WinRM y gran parte de las características y limitaciones específicas de WinRM no se aplican. Por ejemplo, las cuotas basadas en WinRM, las opciones de sesión, la configuración del punto de conexión personalizado y las características de desconexión o reconexión no se admiten actualmente. Para obtener más información sobre cómo configurar la comunicación remota ssh de PowerShell, consulte Comunicación remota de PowerShell a través de SSH.

Antes de PowerShell 7.1, la comunicación remota a través de SSH no admitía sesiones remotas de segundo salto. Esta capacidad se limitaba a las sesiones que usaban WinRM. PowerShell 7.1 permite que Enter-PSSession y Enter-PSHostProcess funcionen desde cualquier sesión remota interactiva.

El ssh ejecutable obtiene los datos de configuración de los orígenes siguientes en el orden siguiente:

  1. opciones de línea de comandos
  2. Archivo de configuración del usuario (~/.ssh/config)
  3. Archivo de configuración de todo el sistema (/etc/ssh/ssh_config)

Los siguientes parámetros de cmdlet se asignan a ssh parámetros y opciones:

Parámetro del cmdlet parámetro ssh opción 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>

Los valores pasados explícitamente por parámetros tienen prioridad sobre los valores pasados en la tabla hash Options . Para obtener más información sobre ssh_config los archivos, vea ssh_config(5).