Escritorio remoto de Windows. Sesión de consola.
En el trabajo tenemos ordenadores con Windows ejecutando programas con interfaz gráfica. Yo suelo conectarme con escritorio remoto. Cuando empecé a utilizar esta herramienta, tenía un problema: no encontraba nada ejecutándose. Sin embargo, veía todas las aplicaciones al enchufar un monitor directamente.
La explicación es que, por defecto, escritorio remoto abre una nueva sesión de login («logon session«). Es diferente a la que utiliza la consola física (teclado, monitor, ratón), llamada sesión de consola («console session»). Para conectarnos a ésta, hay que añadir la opción /console
, en Windows XP, o /admin
, en Windows Vista o superior:
- Windows XP:
mstsc /v:servidor /console
- Windows Vista en adelante:
mstsc /v:servidor /admin
A continuación, se nos preguntará usuario y contraseña. Si hacemos esto a la vez que miramos un monitor físico enchufado a servidor, podremos comprobar que la consola física se bloquea (para justo después entrar nosotros desde el ordenador cliente). Seguirá así cuando desconectemos utilizando el botón cerrar. Para desbloquearla y ahorrar logins innecesarios a mis compañeros, devuelvo la sesión de consola a la consola física:
tscon ID_sesión_consola /dest:console
Al hacer esto, nos desconectaremos automáticamente, sin necesidad de pulsar el botón cerrar. Aparecerá un mensaje de error, porque el sistema operativo no sabe que hemos salido intencionadamente. Dicho mensaje dice:
Your Remote Desktop session has ended.
Another user connected to the remote computer, so your connection was lost. Try connecting again, or contact your network administrator or technical support group.
Los IDs por defecto para la sesión de consola cambian según sistema operativo: 0 para Windows XP, 1 para Vista en adelante. Sin embargo, tenemos que tener en cuenta que en la práctica pueden ser otros:
First, there was NT4 TSE and Win2K, where the console session (that is, the session attached to the physical keyboard/mouse/monitor/etc) was hardcoded to session zero. That is where you get things saying that session zero is the console session from.
In XP and Srv03, the console session became changeable so that the console could attach to any session (not just session zero), which is how fast user switching works. The first user to log on typically gets session 0, but additional users might get session 1, 2, etc. When switching users, it may happen that the console becomes attached to session 1, or any other session.
In Vista, session 0 is reserved for noninteractive services and is typically not attached to the console – it is usually just considered a disconnected session. The first interactive user in Vista gets session 1, the second session 2 (if there was already a user on session 1), and soforth. Like in XP, the console session can dynamically switch based on user switching.
En mi experiencia, esto ocurre cuando conectamos el escritorio remoto a la sesión de consola si ésta estaba previamente cerrada (ya sea porque alguien lo haya hecho a propósito, o porque acabemos de encender el ordenador). En Windows XP me sale ID 2. En este caso, apago la máquina e inicio sesión desde el equipo físico.
Si el ID especificado en tscon no existe, obtendremos el siguiente error:
C:\Documents and Settings\meteo>tscon 0 /dest:console
No se puede conectar la Id. de sesión 0 al nombre de sesión console, código de error 7045
Error [7045]:Se ha denegado el acceso a la sesión especificado.