Compartir a través de


Enter-PSSession

Inicia una sesión interactiva con un equipo remoto.

Sintaxis

Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]

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

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

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

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

Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]

Descripción

El cmdlet Enter-PSSession inicia una sesión interactiva con un solo equipo remoto. Durante la sesión, los comandos que se escriben se ejecutan en el equipo remoto, como si se estuviera escribiendo directamente en el equipo remoto. Solo se puede tener una sesión interactiva a la vez.

Normalmente, se usa el parámetro ComputerName para especificar el nombre del equipo remoto. Sin embargo, también se puede utilizar una sesión que se cree usando New-PSSession para la sesión interactiva.

Para finalizar la sesión interactiva y desconectar del equipo remoto, se utiliza el cmdlet Exit-PSSession o se escribe "exit".

Parámetros

-AllowRedirection

Permite la redirección de esta conexión a un identificador uniforme de recursos (URI) alternativo.

Cuando se utiliza el parámetro ConnectionURI, el destino remoto puede devolver una instrucción de redirección a otro URI. De forma predeterminada, Windows PowerShell no redirige conexiones, pero se puede usar este parámetro para permitir que se redirija la conexión.

Permite la redirección de esta conexión a un identificador URI alternativo.

Cuando se utiliza el parámetro ConnectionURI, el destino remoto puede devolver una instrucción de redirección a otro URI. De forma predeterminada, Windows PowerShell no redirige conexiones, pero se puede usar el parámetro AllowRedirection para permitir que se redirija la conexión.

Puede limitar igualmente el uso de veces que se redirige la conexión estableciendo la propiedad MaximumConnectionRedirectionCount de la variable de preferencia $PSSessionOption o la propiedad MaximumConnectionRedirectionCount del valor del parámetro SessionOption. El valor predeterminado es 5. Para obtener más información, vea la descripción del parámetro SessionOption y vea New-PSSessionOption.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

False

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ApplicationName <string>

Especifica el segmento del nombre de aplicación del identificador URI de la conexión. Utilice este parámetro para especificar el nombre de aplicación cuando no está utilizando el parámetro ConnectionURI del comando.

El valor predeterminado es el valor de la variable de preferencia $PSSessionApplicationName 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, vea about_Preference_Variables.

El servicio WinRM utiliza el nombre de aplicación para seleccionar un agente de escucha a fin de 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.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

WSMAN

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Authentication <AuthenticationMechanism>

Especifica el mecanismo que se utiliza para autenticar las credenciales del usuario. Los valores válidos son "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" y "NegotiateWithImplicitCredential". El valor predeterminado es "Default".

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

Para obtener información sobre los valores de este parámetro, vea la descripción de la enumeración System.Management.Automation.Runspaces.AuthenticationMechanism en MSDN (Microsoft Developer Network) Library, en https://go.microsoft.com/fwlink/?LinkId=144382.

Precaución: la autenticación Credential Security Service Provider (CredSSP), en la que las credenciales del usuario pasan a un equipo remoto para su autenticación, está diseñada para los comandos que requieren autenticación en más de un recurso, como acceso a un recurso compartido de red remota. Este mecanismo aumenta el riesgo que supone la operación remota para la seguridad. Si el equipo remoto está en peligro, las credenciales que se le pasen podrán usarse para controlar la sesión de red.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-CertificateThumbprint <string>

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 en una autenticación basada en certificados del cliente. Pueden asignarse únicamente a cuentas de usuario locales; no funcionan con cuentas de dominio.

Para obtener la huella digital de un certificado, se usa el comando Get-Item o Get-ChildItem en la unidad Cert: de Windows PowerShell.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-ComputerName <string>

Inicia una sesión interactiva con el equipo remoto especificado. Escriba solamente un nombre de equipo. El valor predeterminado es el equipo local.

Se debe escribir el nombre NetBIOS, la dirección IP o el nombre de dominio completo de uno o varios equipos remotos. También se 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. Se debe configurar igualmente el equipo para el transporte HTTPS o la dirección IP del equipo remoto debe estar incluida en la lista TrustedHosts de WinRM del equipo local. Para obtener instrucciones a fin de agregar un nombre de equipo a la lista TrustedHosts, vea el tema sobre cómo agregar un equipo a la lista de hosts de confianza en about_Remote_Troubleshooting.

Nota: en Windows Vista y versiones posteriores de Windows, para incluir el equipo local en el valor del parámetro ComputerName, se debe iniciar Windows PowerShell con la opción "Ejecutar como administrador".

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

false

-ConfigurationName <string>

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 recurso completo para una configuración de sesión. Si se especifica únicamente el nombre de configuración, se antepone el siguiente identificador URI de esquema: https://schemas.microsoft.com/powershell.

La configuración de 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 generará un error.

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

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-ConnectionURI <Uri>

Especifica un identificador uniforme de recursos (URI) que define el extremo de la conexión de la sesión interactiva. El identificador URI debe ser completo.

El formato de esta cadena es:

<Transporte>://<nombreDeEquipo>:<Puerto>/<nombreDeAplicación>

El valor predeterminado es.

https://localhost:80/WSMAN

Los valores válidos para el segmento Transport del URI son HTTP y HTTPS. Si no se especifica un ConnectionURI, se pueden utilizar los parámetros UseSSL, ComputerName, Port y ApplicationName para especificar los valores URI.

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

¿Requerido?

false

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Credential <PSCredential>

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 "Usuario01", "Dominio01\Usuario01" o "Usuario@Dominio.com", o bien, escriba un objeto PSCredential, como uno devuelto por el cmdlet Get-Credential.

Cuando escriba un nombre de usuario, se le solicitará una contraseña.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

Current user

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Id <int>

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

Para obtener el identificador de una sesión, se utiliza el cmdlet Get-PSSession.

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-InstanceId <Guid>

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

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

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Name <string>

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

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

Para establecer el nombre simple de una sesión, se utiliza el parámetro Name del cmdlet New-PSSession.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Port <int>

Especifica el puerto de red en el equipo remoto utilizado para este comando. El valor predeterminado es el puerto 80 (puerto HTTP).

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

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<númeroDePuerto>"}

El parámetro Port no se debe usar a menos que sea imprescindible. El valor de puerto del comando se aplica a todos los equipos o sesiones en que el comando se ejecuta. La configuración de un puerto alternativo puede impedir la ejecución del comando en todos los equipos.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Session <PSSession>

Especifica la sesión de Windows PowerShell (PSSession) que se ha de utilizar para la sesión interactiva. Este parámetro toma un objeto de sesión. También puede utilizar 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 lo cree u obtenga, como un comando New-PSSession o Get-PSSession. También puede canalizar un objeto de sesión a Enter-PSSession. Solo se puede enviar una PSSession con este parámetro. Si escribe una variable que contenga más de una PSSession, se produce un error en el comando.

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

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

true

-SessionOption <PSSessionOption>

Establece opciones avanzadas para la sesión. Se debe especificar un objeto SessionOption creado mediante el cmdlet New-PSSessionOption.

Los valores predeterminados para las opciones los determina el valor de la variable de preferencia $PSSessionOption, si se ha definido. De lo contrario, la sesión utiliza los valores predeterminados del sistema.

Para obtener una descripción de las opciones de sesión, incluidos los valores predeterminados, vea New-PSSessionOption. Para obtener información acerca de la variable de preferencia $PSSessionOption, vea about_Preference_Variables.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-UseSSL

Use 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 Windows PowerShell que se transmite a través de la red. 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 se usa este parámetro pero SSL no está disponible en el puerto utilizado para el comando, se producirá un error en el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.String o System.Management.Automation.Runspaces.PSSession

Se puede canalizar un nombre de equipo (una cadena) o un objeto de sesión a Enter-PSSession.

Salidas

Ninguno

El cmdlet no devuelve resultados.

Notas

-- Para establecer conexión con un equipo remoto, debe ser miembro del grupo Administradores en el equipo remoto.

-- En Windows Vista y versiones posteriores de Windows, para iniciar una sesión interactiva en el equipo local, debe iniciar Windows PowerShell con la opción "Ejecutar como administrador".

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

-- Enter-PSSession utiliza la configuración de referencia cultural de la interfaz de usuario del equipo local para la sesión interactiva. Para buscar la referencia cultural de la interfaz de usuario local, utilice la variable automática $UICulture.

-- Enter-PSSession requiere los cmdlets Get-Command, 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 al ejecutar el comando Enter-PSSession.

-- A diferencia de Invoke-Command, 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.

Ejemplo 1

C:\PS>Enter-PSSession

LocalHost\PS>

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

Los comandos que se ejecuten en la nueva sesión y los resultados se devolverán a la sesión predeterminada como texto.





Ejemplo 2

C:\PS>enter-pssession -computer Server01

Server01\PS> get-process powershell > C:\ps-test\process.txt

Server01\PS> exit-pssession
C:\PS>

C:\PS> 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

Descripción
-----------
Este comando muestra cómo se trabaja en una sesión interactiva con un equipo remoto.

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

El segundo comando obtiene el proceso de PowerShell y redirige los resultados al archivo Process.txt. 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 comando Get-ChildItem ("dir") en el equipo local no puede encontrar el archivo.





Ejemplo 3

C:\PS>$s = new-pssession -computername Server01

C:\PS> Enter-PSSession -session $s

Server01\PS>

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





Ejemplo 4

C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01

Server01\PS>

Descripción
-----------
Este comando inicia una sesión interactiva con el equipo Server01. Utiliza el parámetro Port para especificar el puerto y el parámetro Credential para especificar la cuenta de un usuario con permiso para conectar con el equipo remoto.





Ejemplo 5

C:\PS>Enter-PSSession -computername Server01

Server01:\PS> Exit-PSSession

C:\PS>

Descripción
-----------
En este ejemplo se muestra la forma de iniciar y detener una sesión interactiva. El primer comando utiliza el cmdlet Enter-PSSession para iniciar una sesión interactiva con el equipo Server01. 

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





Vea también

Conceptos

about_PSSessions
about_Remote
New-PSSession
Get-PSSession
Exit-PSSession
Remove-PSSession
Invoke-Command