Configuración de límites de sesiones RDP/RDS (tiempos de espera) en Windows

Cuando un usuario cierra la ventana de sesión de RDP/RDS en un cliente de terminal (mstsc.exeRDCMan o cliente web HTML5 de escritorio remoto) simplemente haciendo clic en la cruz en la esquina superior derecha sin cerrar la sesión, su sesión pasa de activa a desconectado modo. En este modo, todas las aplicaciones, los documentos abiertos y las ventanas aún se ejecutan en una computadora de escritorio remoto y consumen recursos del sistema.

Contenido:

  • Cerrar automáticamente sesiones de usuario de escritorio remoto desconectadas e inactivas
  • La sesión de escritorio remoto ha estado inactiva por encima de su límite de tiempo

De manera predeterminada, la sesión RDP de un usuario en Windows puede permanecer en estado desconectado hasta que el usuario o el administrador la finalicen, o hasta que se reinicie la computadora. Es bastante conveniente, ya que un usuario puede conectarse en cualquier momento a su sesión de escritorio remoto anterior y continuar trabajando con aplicaciones en ejecución y archivos abiertos.

La siguiente captura de pantalla muestra que las sesiones de usuario desconectadas en un servidor RDS que ejecuta Windows Server 2019 consumen aproximadamente el 40 % de la memoria RAM del servidor.

sesión de usuario desconectada en el host rds

Además, estas sesiones pueden bloquear archivos abiertos en sus servidores de archivos, causar problemas con el guardado incorrecto de datos en las aplicaciones, carpetas de perfil móvil o en discos de perfil de usuario. Las sesiones de RDP desconectadas a menudo causan un problema de bloqueo de la cuenta de usuario del dominio después de un cambio de contraseña (cuando la sesión de RDS continúa ejecutándose con la contraseña anterior del usuario).

Utilizando el qusercomando, puede ver cuándo se inició una sesión RDP de usuario, cuánto tiempo estuvo inactiva y el estado actual de la sesión.

Comando quser: enumera todas las sesiones de rds con tiempo de inicio de sesión, inactividad y estado

También puede mostrar información sobre la duración de las sesiones de usuario en la granja de RDS mediante un script de PowerShell (especifique el FQDN de su servidor de agente de conexión de RDS):

$connectionBrocker = “mun-rdscb.woshub.com"
Get-RDUserSession -ConnectionBroker $connectionBrocker |select-object -Property CollectionName, HostServer, DomainName, UserName, ServerIPAddress, CreateTime, DisconnectTime,  SessionState, IdleTime , SessionID , `
@{Name="SessionAge ([days.]hours:minutes)";Expression={ ((get-date ) - $_.CreateTime) } }

Puede configurar la duración máxima de las sesiones activas, desconectadas e inactivas (sin actividad del usuario) para Servicios de Escritorio remoto.

Cerrar automáticamente sesiones de usuario de escritorio remoto desconectadas e inactivas

Para finalizar automáticamente las sesiones RDP/RDS desconectadas en un período de tiempo específico, debe establecer los límites de sesión (tiempos de espera) correctamente.

Si tiene una granja de Servicios de Escritorio remoto implementada en Windows Server, puede configurar el tiempo de espera de la sesión de usuario en la configuración de la colección RDS en el Sesión pestaña.

Especifique el período de tiempo, después del cual desea finalizar una sesión de escritorio remoto desconectada, en el Finalizar una sesión desconectada opción (de forma predeterminada, la duración de una sesión RDP es ilimitada – Nunca). También puede establecer el tiempo máximo de una sesión de usuario activa (Límite de sesiones activas) y finalizar una sesión inactiva (Límite de sesiones inactivas). Estos tiempos de espera estrictos se aplican a todas las sesiones de usuario en la colección de RDS.

Tiempos de espera del servidor RDS en las propiedades de recopilación de sesiones en el host de sesión de RD

En Windows Server 2022/2019/2016/2012R2, puede establecer tiempos de espera de sesión RDP mediante políticas de grupo. Puede hacerlo en el editor de GPO de dominio (gpmc.msc) o en el Editor de políticas de grupo local (gpedit.msc) en un host RDS específico (o en una versión de escritorio de Windows si ha permitido múltiples conexiones RDP).

La configuración de los tiempos de espera de sesión de RDP se encuentra en la siguiente sección de GPO Configuración del equipo -> Políticas -> Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Límites de tiempo de sesión. Están disponibles las siguientes configuraciones de tiempo de espera de Escritorio remoto:

  • Establecer límite de tiempo para la sesión desconectada;
  • Establezca un límite de tiempo para sesiones activas pero inactivas de Servicios de Escritorio remoto — la política permite finalizar sesiones RDP inactivas que no tienen entrada del usuario (como mover el mouse o escribir algo en el teclado);
  • Establecer límite de tiempo para sesiones activas de Servicios de Escritorio remoto — es el tiempo máximo de cualquier sesión RDP (incluso una activa), después del cual cambia al estado desconectado;
  • Terminar sesión cuando se alcanzan los límites de tiempo — establece el tiempo, después del cual se terminará (cerrar sesión) una sesión RDP en lugar de desconectarla;
  • Establezca un límite de tiempo para el cierre de sesión de las sesiones de RemoteApp.

configurar límites de tiempo de sesión RDP/RDS a través de GPO

Por defecto, estas opciones no están configuradas. Para finalizar automáticamente todas las sesiones de usuario de RDP desconectadas en 8 horas, habilite el “Establecer límite de tiempo para sesiones desconectadas” política y seleccione 8 horas en la lista desplegable.

"Establecer límite de tiempo para la sesión desconectada" - parámetro de política de grupo para restringir el tiempo de sesión de rdp

Guarde los cambios y actualice la configuración de la directiva de grupo en su host de Escritorio remoto (gpupdate /force). La nueva configuración de tiempo de espera solo se aplicará a las nuevas sesiones de RDP (tendrá que finalizar manualmente las sesiones de usuario actuales en RDSH).

La configuración de GPO tiene prioridad sobre la configuración de tiempo de espera en la colección de RDS.

Puede encontrar la misma configuración de tiempo de espera de RDP en la sección GPO del usuario: Configuración de usuario -> Plantillas administrativas -> Componentes de Windows. Con la política de la sección de usuarios, puede configurar grupos de usuarios de manera más flexible con diferentes límites en la duración de las sesiones RDP.

También puede establecer límites de tiempo de sesión RDP a través del registro. Los siguientes parámetros DWORD de HKLMSOFTWAREPoliciesMicrosoftWindows NTTerminal Services clave de registro correspondiente a las opciones de directiva de grupo descritas anteriormente:

  • MaxDisconnectionTime
  • Max Idle Time
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

Por ejemplo, para establecer la duración máxima de una sesión RDP desconectada en 15 minutos (90 000 ms), puede cambiar un parámetro de registro con el siguiente comando de PowerShell:

Set-ItemProperty "HKLM:SOFTWAREPoliciesMicrosoftWindows NTTerminal Services" -Name MaxDisconnectionTime -Type 'DWord' -Value 900000

También puede establecer los límites de una sesión RDP en el Ajustes pestaña en las propiedades de un local (lusrmgr.msc) o usuario de dominio (dsa.msc — Consola de usuarios y equipos de Active Directory). Las siguientes opciones están disponibles aquí:

  • Terminar una sesión desconectada;
  • límite de sesiones activas;
  • Límite de sesión inactiva;
  • Cuando se alcanza el límite de una sesión o se interrumpe la conexión: «Desconectarse de la sesión» o «Finalizar sesión»;
  • Permitir la reconexión: «Desde cualquier cliente» o «Solo desde el cliente de origen».

tiempos de espera de sesión de rds en propiedades de usuario en el directorio activo

No debe hacer que los tiempos de espera de la sesión RDP sean demasiado cortos; de lo contrario, las sesiones de los usuarios finalizarán casi inmediatamente después de que se vuelvan inactivas.

Si tiene un servidor de puerta de enlace de escritorio remoto implementado para el acceso remoto a los hosts de RDS, puede configurar tiempos de espera separados para los usuarios conectados a través de RDGW (abra la política de autorización de conexión y vaya a la Tiempos de espera pestaña).

puerta de enlace de escritorio remoto: configuración de tiempo de espera de la sesión

En Windows Server 2008 R2, también puede establecer tiempos de espera de sesión RDP usando un tsconfig.msc (Configuración de host de sesión de RD). Bastaba con abrir la consola y hacer clic con el botón derecho en RDP-Tcp -> Propiedades. Los límites de tiempo de espera de la sesión se encuentran en la Sesiones pestaña. Sin embargo, no existe tal consola en las versiones más recientes de Windows Server (aunque puede copiar manualmente los archivos tsadmin.msc y tsconfig.msc y usar estas consolas también en las versiones más nuevas de Windows Server).

Límites de sesión de tsconfig.msc en Windows Server 2008 R2

La sesión de escritorio remoto ha estado inactiva por encima de su límite de tiempo

Después de configurar los tiempos de espera de RDS, los usuarios verán la siguiente advertencia antes de desconectar una sesión inactiva:

Idle timer expired
Session has been idle over its time limit.
It will be disconnected in 2 minutes.
Press any key to continue the session.

mensaje de sesión rdp caducado temporizador inactivo

Y antes de que el usuario se desconecte, el ID de evento 26 se registra en el Visor de eventos del sistema.

ID de evento 26: se alcanzó el límite de tiempo de la sesión

Puede desactivar esta advertencia configurando el Habilitar advertencia de tiempo de espera = 0 en la clase WMI Configuración de Win32_TSSession.

Set-WmiInstance -Path "\localhostrootCIMV2TerminalServices:Win32_TSSessionSetting.TerminalName="RDP-Tcp"" -Argument @{EnableTimeoutWarning=0}

Ahora, cuando Windows finalice automáticamente las sesiones de RDP inactivas, el usuario recibirá el siguiente mensaje del cliente de RDP:

Your Remote Desktop Services session ended because the remote computer didn’t receive any input from you.

 La sesión de Servicios de Escritorio remoto finalizó: la computadora remota no recibió ninguna entrada de usted

En algunos casos, puede encontrar este error en el cliente RDP:

Your Remote Desktop Services session has ended. Another user connected to the remote computer, so your connection was lost. Try connecting again, or contact your network administrator.

Sesión RDP finalizada: otro usuario conectado a la computadora remota

Esto significa que alguien más inició sesión en la computadora a través de RDP cuando la cantidad de sesiones RDP simultáneas en la computadora está restringida por el Limite el número de parámetros de conexiones (por ejemplo, solo una sesión remota está disponible en las versiones de escritorio de Windows). O ha iniciado sesión en el host RDP desde una computadora nueva.

Puede permitir múltiples conexiones bajo la misma cuenta de usuario al host RDP usando la opción GPO Restrinja a los usuarios de Servicios de Escritorio remoto a una sola sesión de Servicios de Escritorio remoto = Deshabilitado (en Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Conexiones).

gpo: restrinja al usuario de RDS a una sola sesión

Artículos Interesantes