Enter-PSSession
Inicia una sesión interactiva con un equipo remoto.
Sintaxis
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-PSSession
cmdlets , Connect-PSSession
o 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. Debe tener SSH en el equipo local y el equipo remoto debe configurarse 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
.
Importante
Enter-PSSession
está diseñado para sustituir la sesión interactiva actual por una nueva sesión remota interactiva. No debe llamarlo desde una función o script ni pasarlo como un comando al pwsh
ejecutable.
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 ConnectionURI , 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 MaximumConnectionRedirectionCount . Use el parámetro MaximumRedirection del New-PSSessionOption
cmdlet o establezca la propiedad MaximumConnectionRedirectionCount de la $PSSessionOption
variable de preferencia. El valor predeterminado es 5.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 ConnectionURI 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.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Authentication
Especifica el mecanismo que se usa para autenticar las credenciales del usuario. Los valores permitidos para este parámetro son los siguientes:
- Valor predeterminado
- Básico
- 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.
Tipo: | AuthenticationMechanism |
Valores aceptados: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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; no funcionan con cuentas de dominio.
Para obtener un certificado, use el Get-Item
comando o Get-ChildItem
en la unidad Cert: de PowerShell.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | String |
Alias: | Cn |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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, se produce un error en el comando.
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.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | unlimited |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 connectionURI, puede usar los parámetros UseSSL, ComputerName, Port y ApplicationName para especificar los valores connectionURI.
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.
Tipo: | Uri |
Alias: | URI, CU |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ContainerId
Especifica el identificador de un contenedor.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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?.
Tipo: | PSCredential |
Posición: | 1 |
Valor predeterminado: | Current user |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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 .
Tipo: | Int32 |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | Guid |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | String |
Alias: | IdentityFilePath |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 .
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | Hashtable |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
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.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RunAsAdministrator
Indica que la PSSession se ejecuta como administrador.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | PSSession |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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 prioridad sobre los valores máximos, cuotas o 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.
Tipo: | PSSessionOption |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Valores aceptados: | true |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 powershell
subsistema.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | Powershell |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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 depende de cómo se configura 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, uou no se le pedirá una contraseña. Debe proporcionar una ruta de acceso a un archivo de clave SSH. Si el archivo de clave de usuario se encuentra en una ubicación conocida de SSH, el parámetro KeyFilePath no es necesario. La autenticación de usuario se produce 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.
Si no se especifica el parámetro UserName , se usa el nombre de usuario que inició sesión actual.
Este parámetro se introdujo en PowerShell 6.0.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-VMId
Especifica el identificador de una máquina virtual.
Tipo: | Guid |
Alias: | VMGuid |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-VMName
Especifica el nombre de una máquina virtual.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un nombre de equipo como una cadena a este cmdlet.
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-Command
cmdlets , Out-Default
y 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-Command
de , 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 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:
- opciones de línea de comandos
- Archivo de configuración del usuario (~/.ssh/config)
- Archivo de configuración para todo el sistema (/etcetera/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).