Programando un script con Batch para abrir varios escritorios remotos

Publicado el 16.06.2024 a las 23:29

Programando un script con Batch para abrir varios escritorios remotos

  1. Almacenando credenciales para RDP

  2. Listando los servidores en un array

  3. Iterando el array de servidores

  4. Script completo

Programando un script con Batch para abrir varios escritorios remotos

Logo de fjmduran

El trabajo repetitivo me da mucho coraje.


El trabajo repetitivo no me gusta nada... lo único bueno que tiene... que se puede automatizar.


En uno de los proyectos en los que estoy actualmente, una de las tareas es mantener 9 servidores con buena salud para que trabajen dentro de una red en la que cada uno realiza varias funciones que son orquestadas para que un sistema de monitorización y aviso ambiental funcione correctamente.


Estoy pendiente de que algún administrador de la red corporativa me otorgue permisos a habilitar SSH, hasta entonces me toca acceder a los servidores vía escritorio remoto (RDP).


Es muy tedioso tener que abrir 9 instancias de RDP, cada uno con su IP, usuario y contraseña.


Me he programado un script con Batch para esta tarea.


Como se podrás imaginar ya, son servidores con Windows Server.


¿Por qué me hago este script?


Porque de esta manera evito que se me quede algún servidor de los 9 atrás y ahorro muchísimo tiempo abriendo instacias de RDP, copiando y pegando IP, usuarios y contraseñas.

Almacenando credenciales para RDP

Voy a utilizar cmdkey para almacenar las credenciales de acceso al servidor remoto.


cmdkey se utiliza para gestionar las credenciales que el sistema operativo puede utilizar para autenticarse automáticamente al conectar con recursos de red.

cmdkey /generic:TERMSRV/10.186.4.174 /user:usuario /pass:contraseña

Listando los servidores en un array

La siguiente línea de código tiene poco que explicar.

set servers=("10.186.4.174" "10.186.4.175")

Iterando el array de servidores

for %%S in %servers% do (    
    echo Conectando a %%S...
    start mstsc /v:%%S
)
      

Script completo

@echo off

rem Establezco credenciales
cmdkey /generic:TERMSRV/10.186.4.174 /user:usuario /pass:contraseña

rem hago una pausa de 1 segundo
timeout /t 1 /nobreak > nul

cmdkey /generic:TERMSRV/10.186.4.175 /user:usuario /pass:contraseña

rem Lista de servidores
set servers=("10.186.4.174" "10.186.4.175")

rem Iterar sobre cada servidor y abrir una conexión RDP
for %%S in %servers% do (    
    echo Conectando a %%S...
    start mstsc /v:%%S
    rem ahora me paro porque cuando abro varias conexiones de escritorio remoto se quedan pilladas, es posible que sea por el servidor de jumper
    pause
)

echo hasta luego lucas
      

Hasta luego 🖖