PSSession entre un servidor en un dominio y un servidor en un grupo de trabajo.

En este tutorial, os explicaré la configuración que debéis realizar en los servidores para poder conectaros, mediante una sesión de PowerShell, entre un ordenador que está en un dominio y otro que está en un grupo de trabajo.

La solución que se ofrece en este tutorial implica el uso de WinRM por HTTP con autenticación básica.

Esta configuración puede ser necesaria:

  • Para gestionar servidores que no pertenecen a un dominio desde un ordenador que sí está en un dominio
  • Para ejecutar scripts con Jenkins en un servidor que no pertenece a un dominio
  • Con Ansible

Para que lo entiendas mejor:

  • Cliente: servidor que se va a conectar a un host remoto
  • Servicio: servidor que va a recibir la conexión

Empezaremos por la configuración del servidor remoto (el que está fuera del dominio).

Los comandos deben ejecutarse en una ventana de PowerShell

El primer paso es comprobar que WinRM (Gestión remota) está correctamente configurado.

Si aún no lo ha hecho, configure WinRM con el siguiente comando:

winrm quickconfig

Comprueba que el servicio WinRM esté en marcha:

Get-Service WinRM

Comprueba la configuración del servicio:

winrm get winrm/config/service

Ahora pasaremos a la configuración de nuestro servidor de destino; para poder conectarnos a él, tendremos que habilitar la autenticación básica y permitir el tráfico no cifrado.

Activa la autenticación básica:

winrm set winrm/config/service/auth '@{Basic="true"}'

Permite el tráfico no cifrado:

winrm set winrm/config/service '@{AllowUnencrypted="true"}'

El servidor que va a recibir las conexiones ya está listo. Ahora hay que configurar el cliente (el servidor desde el que nos vamos a conectar).

Abre una ventana de PowerShell.

Activa la autenticación básica en el cliente:

winrm set winrm/config/client/auth '@{Basic="true"}'

Permitir el tráfico sin cifrar desde el cliente:

winrm set winrm/config/client '@{AllowUnencrypted="true"}'

El último paso consistirá en configurar el cliente para indicarle que puede conectarse a cualquier host:

Set-Item WSMan:localhost\client\trustedhosts -value *

El comando te pedirá una confirmación

Es posible probar la conexión con el siguiente comando:

winrm identify -r:http://remote_server:5985 -auth:basic -u:user -p:password -encoding:utf-8

Para conectarse, utilice el cmdlet Enter-PSSession:

Enter-PSSession -ComputerName IP_or_DNS -Authentification basic -Credential Administrator

El uso de esta configuración no es seguro, ya que el tráfico no está cifrado.

Romain Drouche
Romain Drouche
Arquitecto de sistemas | MCSE: Infraestructura básica
Experto en infraestructura de TI con más de 15 años de experiencia en el sector. Actualmente, como Gerente de Proyectos de Sistemas y Redes y experto en Seguridad de Sistemas de Información (ISS), utilizo mi experiencia para garantizar la fiabilidad y seguridad de los entornos tecnológicos.

Deja un comentario