MSTSC: La herramienta CLI definitiva para control remoto y acceso

En el rápido mundo de la tecnología de la información de hoy, el acceso remoto es necesario para una conectividad sin problemas y operaciones eficientes. Afortunadamente, con Microsoft Terminal Server Client (MSTSC), puedes acceder de forma remota y tomar control sobre otra PC.

MSTCS es un comando que ejecuta Remote Desktop para acceder a hosts o servidores de forma remota. Y en este tutorial, aprenderás los conceptos básicos de cómo utilizar MSTSC para el acceso remoto y una visión general de sus funciones.

¿Listo? ¡Sigue leyendo para mejorar tu juego de control remoto!

Prerrequisitos

Este tutorial está diseñado como una demostración práctica. Para seguir, necesitarás un host local y remoto con Windows. Este tutorial utiliza Windows 10 Pro para ambos hosts.

Tenga en cuenta que su host remoto debe tener un sistema operativo Windows Pro para permitir conexiones de escritorio remoto entrantes. Si tiene Windows Home, actualícese a Windows Pro antes de continuar con este tutorial:
Actualización de Windows 10 Home a Windows 10 Pro
Actualización de Windows Home a Windows Pro

Habilitar el Protocolo de Escritorio Remoto (RDP)

RDP es un protocolo desarrollado por Microsoft que permite a los usuarios acceder de forma remota a una computadora o servidor basado en Windows a través de una red. Con RDP, puede conectarse a una computadora remota y utilizar sus recursos como si estuviera frente a ella.

Para habilitar RDP en Windows, siga estos pasos:

1. Abra PowerShell como administrador en su servidor remoto y asegúrese de que el directorio de trabajo sea C:\Windows\System32.

2. A continuación, ejecute el siguiente comando ./reg add en PowerShell para realizar una modificación en el registro con confirmación de solicitud (-f).

Este comando habilita las conexiones de Escritorio Remoto de la siguiente manera:

  • "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" La ruta al clave del registro que controla la configuración del Servicio de Terminal.
  • /v – Especifica el nombre del valor a modificar. En este caso, el valor fDenyTSConnections controla si se permiten o se niegan las conexiones de Escritorio remoto.
  • /t – Especifica el tipo de datos a modificar, que, en este caso, es un tipo de datos DWORD (doble palabra) (REG_DWORD).
  • /d – Establece el valor de la clave fDenyTSConnections en 0, permitiendo conexiones de Escritorio remoto.
./reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Enabling Remote Desktop connections in the registry

3. Ahora, ejecuta el siguiente comando ./netsh advfirewall para establecer la regla del firewall que permite conexiones de Escritorio remoto. Este comando asegura que el Firewall de Windows no bloquee el tráfico entrante de Escritorio remoto a través de RDP.

./netsh advfirewall firewall set rule group="remote desktop" new enable=yes
Setting a firewall rule to allow Remote Desktop connections

Tal vez ya no necesites acceder a la máquina con Windows de forma remota y quieras mejorar la seguridad de la máquina. Si es así, ejecuta los siguientes comandos para bloquear el tráfico entrante de Escritorio remoto.

./reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
./netsh advfirewall firewall set rule group="remote desktop" new enable=No

Conexión a un Host Remoto en Modo de Pantalla Completa

El cliente de Conexión de Escritorio Remoto de Microsoft proporciona una interfaz gráfica de usuario (GUI) amigable para conexiones remotas, lo cual es excelente. Pero la GUI puede que no sea la solución más eficiente para acceder rápidamente a un host remoto.

Afortunadamente, MSTSC ofrece una interfaz de línea de comandos (CLI) que te permite conectarte directamente y tomar el control de tu servidor RDP con solo un comando. Además, MSTSC soporta un modo de pantalla completa que te permite ver más de la sesión de escritorio remoto para que puedas trabajar de manera más eficiente.

Para conectarte a un host remoto en modo de pantalla completa:

Abre PowerShell en tu máquina local y ejecuta cualquiera de los siguientes comandos ./mstsc para conectarte a tu host remoto.

Asegúrate de reemplazar lo siguiente según corresponda:

  • <Dirección_IP> – La dirección IP pública real de tu host remoto.
  • <Puerto> – El puerto que configuraste en tu host remoto para usar en lugar del puerto predeterminado (3389). De lo contrario, omite el puerto para usar automáticamente el predeterminado.
# Conectándose al host remoto con el puerto RDP configurado
./mstsc /v:<IP_Address>:<Port> /f
# Conectándose al host remoto usando el puerto RDP predeterminado (3389)
./mstsc /v:<IP_Address> /f

Si prefieres ejecutar el comando mstsc independientemente del directorio de trabajo, añade la ruta de MSTSC (C:\Windows\System32\mstsc) a la variable de entorno PATH. Una vez añadida, puedes ejecutar el comando como el siguiente: mstsc /v:<Dirección_IP>:<Puerto> /f

Cuando se le solicite, proporcione las credenciales de su host remoto, como se muestra a continuación, y haga clic en OK para autenticar la conexión.

Authenticating the remote desktop connection

La salida a continuación muestra una conexión de Escritorio remoto en modo de pantalla completa.

Viewing a remote desktop connection in full-screen mode

Personalización de la resolución para conexiones de Escritorio remoto

Has visto cómo conectarte a un host remoto en modo de pantalla completa, lo cual es útil si trabajas con muchas herramientas. Pero ten en cuenta que la resolución de la sesión de Escritorio remoto puede no coincidir con la resolución de tu pantalla local.

Personalizar la resolución para conexiones remotas te permite ajustar el tamaño de la sesión de escritorio remoto.

Para personalizar la resolución de tus conexiones de Escritorio remoto:

Ejecuta el siguiente comando para conectarte a tu host remoto con un ancho personalizado (/w) y altura (/h). Reemplaza <Width> y <Height> con valores que representen la resolución de píxeles deseada.

Este comando asegura que la sesión de escritorio remoto se ajuste cómodamente en tu pantalla y que el texto, las imágenes y otros elementos se muestren clara y legiblemente.

./mstsc /v:<IP_Address>:<Port> /w:<Width> /h:<Height>

Observa a continuación que la sesión de Escritorio remoto es como una ventana normal, que puedes maximizar hasta el límite de la resolución especificada.

Customizing the resolution for Remote Desktop connections

Emparejando la resolución de la pantalla local automáticamente

Personalizar la resolución de tu conexión de Escritorio remoto funciona genial si estás familiarizado con los valores correctos. Pero ¿qué pasa si prefieres que coincida con la resolución de tu pantalla local? La bandera /span hará el truco, conocida como modo “spanning” para conexiones de Escritorio remoto.

Ejecuta el siguiente comando, agregando la bandera /span, para conectarte a tu host remoto mientras coincides con la resolución de tu pantalla local.

Cuando el modo de spanning está habilitado, MSTSC detecta automáticamente la resolución de tu pantalla local y ajusta la resolución de la conexión remota para que coincida con ella.

./mstsc /v:192.168.1.100 /span
Matching to local display resolution automatically

Conexión a un host remoto en modo público

Además de conectarte a un host remoto en modos de pantalla completa y de spanning, también puedes conectarte a tu host remoto en modo público. Este modo es útil cuando te conectas a una máquina remota desde una computadora pública compartida por varios usuarios.

Cuando el modo público está habilitado, las credenciales que uses para iniciar sesión en el host remoto no se guardan ni se almacenan en caché. Este comportamiento evita que otros usuarios accedan a tu máquina remota, ¡uf!

Ejecuta el siguiente comando para conectarte a tu host remoto en modo público (/public)

./mstsc /v:<IP_Address>:<Port> /public

Es posible que necesites ingresar las credenciales de la cuenta de usuario remoto para acceder a la sesión remota. Todos los cambios que realices durante tu sesión remota, incluidas las preferencias y configuraciones, se descartan automáticamente al desconectar la sesión.

Connecting to a remote host in public mode

Conexión a un host remoto como administrador

Has estado accediendo a tu host remoto como un usuario regular, lo cual está bien. Sin embargo, la gestión de hosts remotos generalmente requiere privilegios administrativos.

Por ejemplo, es posible que necesites instalar un paquete de software o acceder a configuraciones del sistema que solo están disponibles desde una cuenta de administrador.

Ejecuta el siguiente comando para conectarte a tu host remoto con una resolución personalizada como un /admin, que tiene privilegios elevados y puede realizar tareas administrativas en el host remoto.

./mstsc /v:<IP_Address> /w:900 /h:720 /admin
Connecting to a remote host as an admin

Ahora, abre el Panel de Control y navega a la sección de Cuentas de Usuario.

¿Ves una salida similar a la siguiente? ¡Felicidades! Te has conectado con éxito a tu host remoto como administrador.

Verifying administrator privileges

Conexión a un Host Remoto a través de un Archivo Existente de .rdp

Hasta ahora, te has conectado con éxito a tu host remoto en diferentes modos. Pero especificar diferentes parámetros cada vez que te conectas puede resultar tedioso a largo plazo.

¿Por qué no guardar una copia de la configuración de conexión de Escritorio Remoto en un archivo de .rdp en su lugar? Un archivo de .rdp contiene todas las configuraciones necesarias para establecer una conexión con un host remoto, que puedes usar en lugar de ingresar manualmente los argumentos de la línea de comandos MSTSC.

Cuando compras un servicio de control remoto, generalmente descargas un archivo .rdp de proveedores de servicios como Amazon Web Services y Azure RDP.

Para establecer una conexión a un host remoto usando un archivo .rdp existente:

Ejecuta el siguiente comando, sustituyendo <RUTA_DEL_ARCHIVO_RDP> con la ruta completa de tu archivo .rdp existente para conectarte a tu host remoto según los ajustes especificados en tu archivo .rdp.

./mstsc <RDP_FILE_PATH>

El siguiente ejemplo muestra cómo conectarse a una instancia de AWS EC2 usando un archivo .rdp existente (ec2_instance.rdp) ubicado en la carpeta C:\\Users\\admin\\Documents\\.

./mstsc C:\Users\admin\Documents\ec2_instance.rdp 

Ignora el mensaje de advertencia de seguridad y haz clic en Conectar para proceder.

Connecting to the remote host via an existing .rdp file

Modificando los Ajustes de un Archivo .rdp Existente

Tal vez tu archivo .rdp no contenga todos los ajustes que necesitas para establecer una conexión, o deseas modificar los ajustes. De cualquier manera, la bandera /edit será útil.

Para modificar los ajustes de tu archivo .rdp existente:

Ejecuta el siguiente comando, agregando la bandera /edit, que abre el archivo .rdp en la ventana de ajustes de Conexión de Escritorio Remoto.

./mstsc /edit <RDP_FILE_PATH>

Una vez que estés satisfecho con los ajustes modificados, haz clic en Guardar para guardar los cambios o en Guardar como para guardar los ajustes en un nuevo archivo .rdp.

Modifying an existing .rdp configuration file

Conclusión

El acceso remoto a un host o servidor te permite acceder a archivos sin necesidad de llevar unidades USB o discos duros de un lado a otro. Y en este tutorial, has aprendido cómo habilitar RDP y usar MSTSC para conectarte a un host remoto en diferentes modos, resoluciones e incluso a través de un archivo .rdp existente.

Al aprovechar MSTSC, puedes gestionar eficientemente ordenadores y estaciones de trabajo remotos, independientemente de su ubicación física.

Ahora, puedes usar MSTSC con confianza como tu herramienta de línea de comandos para establecer conexiones remotas seguras y eficientes con hosts remotos. ¿Por qué no intentar los comandos qwinsta o rwinsta para gestionar tus sesiones de escritorio remoto la próxima vez?

Source:
https://adamtheautomator.com/mstsc/