Skip to content

Conectar con servidor Windows remoto usando Powershell o CMD

Conectar con servidor Windows remoto usando Powershell o CMD

¿Alguna vez te has preguntado si es posible dar órdenes o ejecutar scripts remotamente en equipos Windows sin tener que iniciar sesión en ellos? Este post te interesa, porque hoy veremos cómo administrar equipos remotos como si estuvieras delante de ellos.

A los que hemos sido administradores de sistemas (algo que aún trabajando en seguridad nunca dejas atrás del todo) nos encanta la consola, sea Powershell o el CMD, por la versatilidad y rapidez que ofrece al realizar multitud de tareas, además de ofrecer la opción de crear scripts.

Administrar Windows remotamente mediante linea de comandos, CMD / PowerShell

A buen seguro ya conoces más de una opción que emplea la GUI (interfaz gráfica) para conectarte con un equipo distante (como RDP/RDS). Veamos a continuación de qué forma podemos controlar remotamente un servidor Windows usando la consola de comandos, algo especialmente útil si queremos conectar con versiones Windows Server Core, que no cuentan con GUI por defecto.

Gestión remota con WinRS / WinRM

Microsoft incorpora varias opciones nativas que permiten controlar un servidor Windows remoto a través del CLI o linea de comandos y una de ellas es Windows Remote Shell / Windows Remote Management tool.

Compatibilidad

Las características del protocolo WinRM están disponibles en los siguientes sistemas operativos:

  • Windows Server 2008 / R2 y posteriores
  • Windows 7 y posteriores

En sistemas operativos anteriores será necesario instalar el paquete apropiado, al menos WinRM 2.0.

Habilitar Powershell remoting (WinRM/WinRS)

Lo primero que haremos es verificar en nuestro servidor (o cliente remoto) la disponibilidad del servicio.

Abriremos Powershell como administrador: haremos clic derecho sobre el botón Inicio, mientras mantenemos pulsada la tecla SHIFT. Escogeremos la opción resaltada.

Abrir powershell como administrador
Abrir powershell como administrador

Este servicio está configurado de forma manual por defecto. Es necesario cambiar el inicio a automático e iniciar el servicio en cada equipo donde queramos trabajar remotamente. Verificaremos el estado actual de WinRM con el siguiente comando:

get-service winrm
Administrar Windows mediante linea de comandos con WinRS WinRM (1)
En la imagen podemos ver que, en nuestro caso, el servicio ya está en ejecución

El valor debería ser «running» o en ejecución. Ahora, para configurar Windows Powershell para gestión remota, escribiremos:

Enable-PSRemoting –force

Recibiremos una salida similar a esta, que quiere decir que el servicio está preparado.

Administrar Windows mediante linea de comandos con WinRS WinRM (2)

Añadir host de confianza

Cuando queremos trabajar remotamente en ordenadores que se encuentran en diferentes dominios, podríamos encontrarnos que no somos capaces de iniciar sesión. Esto dependerá de si el equipo remoto se encuentra en un dominio de confianza.

Podemos solventar el problema de la autenticación añadiendo el/los equipo/s a la lista «trusted hosts» o equipos de confianza de nuestro equipo local, en la configuración de WinRM. La sintaxis es la siguiente:

winrm s winrm/config/client '@{TrustedHosts="miservidor.midominio.tld"}'

Donde tld es top level domain (.com, .es o similar según el caso). Introduciremos tantas lineas en el equipo destino como clientes remotos queramos permitir que lo administren.

Estos comandos se deben lanzar desde una sesión Powershell con privilegios de administrador.

Cuando trabajemos con equipos en grupos de trabajo o grupos hogar, será necesario bien usar HTTPS como capa de transporte, bien añadir los equipos como TrustedHosts como acabamos de explicar.

Uso de Windows Remote Shell

Para usar las características remotas de Powershell o bien del CMD (en este caso son intercambiables) necesitaremos lanzar la consola como administrador. Si vamos a lanzar la consola desde otro programa previo, también deberemos haberlo lanzado como superusuario.

Sintaxis

El uso, si no hemos añadido trusted hosts, es el siguiente:

winrs -r:miservidor.midominio.tld -u:usuario -p:contraseña <aplicacion>

Por el contrario, si contamos con hosts de confianza obviaremos las credenciales:

winrs -r:miservidor.midominio.tld <aplicacion>

Ejemplo

En el siguiente caso se puede ver como se lanza un comando contra un servidor remoto (en el comando hostname vemos el nombre del mismo). Listamos el directorio del usuario y posteriormente cancelamos la conexión, con la combinación CTRL+C seguido de Y.

Al lanzar un hostname de nuevo volvemos a nuestro equipo local.

Más ejemplos

Archivo batch para abrir una consola remota rápidamente:

@echo off
winrs -r:%1 cmd

Instalar un paquete en un servidor remoto:

winrs -r:Server25 msiexec.exe /i c:\install.msi /quiet

Ejecutar un script PowerShell en un servidor remoto:

winrs /r:DemoServer2 powershell.exe -nologo -noprofile -command d:\test\test.ps1

Troubleshooting

Si nos encontramos que no podemos conectar a un host remoto, verificaremos que que dicho host está activo/conectado (lanzando un ping por ejemplo). También verificaremos que puede aceptar las solicitudes remotas con el siguiente comando:

winrm quickconfig

Información adicional

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

4 thoughts on “Conectar con servidor Windows remoto usando Powershell o CMD Leave a comment

    • Hola Alejandro, gracias por venir, he editado tu comentario para que no aparezca tu dirección real y no «spameen» en adelante. Decirte que, por otro lado, si lo que quieres es aprender más sobre esto hay información oficial de Microsoft en su web. Por supuesto, te animo a que si quieres aprender más de los temas que trato en mi blog te suscribas poniendo una dirección de email en el apartado de «seguir blog». Saludos.

  1. ¡Saludos Alejandro! Ante todo gracias por el aporte que haces, es un tema que me llama la atención. No se si tendrás la disponibilidad para aclarar unas dudas que poseo relaciona al tema. Saludos

Deja un comentario