Conexión Remota con PowerShell 2.0

La capacidad de crear una conexión remota es una de las principales diferencias más y quizás la más importante entre PowerShell 1.0 y 2.0. Sin embargo, la creación de una sesión remota(para interactuar)  por primera vez, es una de las tareas un tanto complicadas en PowerShell, especialmente en entornos donde no existe un controlador de domino (Directorio Activo). Pero como para todo hay solución he aquí como hacerlo, de forma muy sencilla y útil.

El objetivo principal sería es elevar los permisos de confianza para permitir conexiones de cualquier equipo. Primero verificamos la existencia del espacio de nombres WSMan (Control de Credenciales) el cual está direccionado al servicio WinRm.

Get-PsProvider

Luego verificamos su configuración (específicamente TrustedHosts)

cd wsman:
cd localhostclient
dir

Ahora la parte más importante. Permitir conexiones de cualquier equipo

# Permitir conexiones de cualquier equipo
Set-Item WSMan:localhostClientTrustedHosts *
# Reiniciar el servicio
restart-Service winrm

Importante: Este método funciona en un entorno con equipos no pertenecientes a un dominio. Si hay un Directorio activo se puede configurar TrustedHosts via las políticas de grupo (Group Policy)

Hecha la primera parte, continuamos con la configuración del servicio WinRM y dar permisos a los equipos que se han de conectar TrustedHosts.

Los pasos a seguir serían:

En el servidor desde el que nos queremos conectar

Get-Service winrm
Enable-PSRemoting –force
winrm s winrm/config/client ‘@{TrustedHosts=»*»}’
winrm quickconfig

Conexión entre máquinas (desde la estación de trabajo)

New-PSSession -computername Servidor -Credential Usuario
Get-PSSession
Enter-PSSession -ID Identificador_obtenido_con_el_Get-Pssession

NOTA:

PowerShellTrustedHosts=”*” es una política que permite que servidores serán los que se puedan conectar remotamente, en ejemplo, se pone un asterisco que equivale a se aceptan conexiones desde cualquier máquina. Si lo que se necesita es filtrar las conexiones se debe personalizar este parámetro del servicio WINRM ( winrm /? ).

En un entorno de trabajo con máquinas virtuales, me encontré con otra dificulta y es que no se podían habilitar las conexiones remotas (Enable-PSRemoting –force). Encontré un artículo en la red que habla como solucionar el problema: Enabling Remoting on Windows 7 with PowerShell 2.0

Espero que os sirva de ayuda.