Los servicios de escritorio remoto están ocupados actualmente

A veces, los usuarios no pueden conectarse a servidores de granja RDS que ejecutan Windows Server mediante el cliente RDP integrado (mstsc.exe) con el siguiente error:

The task you are trying to do can't be completed because Remote Desktop Services is currently busy. Please try again in a few minutes. Other users should still be able to log on.

Error de RDS La tarea que está intentando realizar no se puede completar porque los Servicios de escritorio remoto están ocupados actualmente

En este caso, el administrador del host RDS puede ver muchas sesiones de usuario bloqueadas con el nombre (4) en lugar de nombres de usuario y Desconectado estado en la pestaña Usuarios del Administrador de tareas.

RDS: sesiones desconectadas con (4) en lugar de nombre de usuario

El problema ocurre en todas las versiones de Windows Server: 2008 R2, 2012 R2, 2016 y 2019.

El error puede aparecer por varias razones:

  • Un error en el funcionamiento de los Servicios de Escritorio remoto;
  • Un error en el proceso csrss.exe;
  • Un problema con un perfil de usuario o servicio profsvc;
  • Falta de RAM o espacio en disco en el servidor RDSH;
  • Configuración incorrecta de la directiva de grupo.

Desafortunadamente, no existe una solución oficial de Microsoft que pueda resolver el problema por completo. Todo lo que puede hacer es deshacerse de los síntomas.

Casi siempre, la resolución de problemas implica el restablecimiento de una sesión de usuario problemática o el reinicio del servidor RDS, pero en algunos casos el problema persiste. Estudiemos las soluciones empezando por la más sencilla.

Compruebe los recursos del servidor RDS

Asegúrese de tener suficientes recursos del servidor ya que el problema puede ocurrir debido a la falta de RAM o espacio en el disco. Verifique la carga de RAM y cuánto espacio libre queda en el disco con el sistema operativo instalado (debe haber al menos 1 GB). Además, consulte el registro de eventos para ver si hay errores críticos relacionados con RDS.

Si todo está bien, continúe con el siguiente paso.

Restablecer la sesión de escritorio remoto del cliente atascado en RDS

En primer lugar, intente encontrar y restablecer una sesión del usuario que no puede iniciar sesión en el servidor RDS con el error «El servicio de escritorio remoto está ocupado actualmente». Busque un usuario en la pestaña Usuarios del Administrador de tareas y haga clic en Desconectarse en el menú contextual. En la mayoría de los casos, es suficiente para resolver un problema, pero a veces puede encontrar varias sesiones colgadas con el nombre (4) en lugar de un nombre de usuario en el Administrador de tareas. Como regla general, habrá 4 procesos en una sesión de usuario RDS colgada:

  • Proceso de tiempo de ejecución del servidor cliente (csrss.exe)
  • Administrador de Windows de escritorio (dwm.exe)
  • Aplicación de inicio de sesión de Windows (winlogon.exe)
  • Interfaz de usuario de inicio de sesión de Windows

Para empezar, intente restablecer todas las (4) sesiones RDS colgadas en el Administrador de tareas como se describe anteriormente. Si no ayuda, es mejor reiniciar el servidor. Pero esto a menudo no es posible, ya que afectará las sesiones de otros usuarios en el host RDS. Entonces intentaremos resolver el problema sin reiniciar el host:

  1. Ejecute el símbolo del sistema elevado y ejecute el comando: query session
    sesión de consulta en rdsh Mostrará a todos los usuarios y sus sesiones remotas en el host RDS. Hay 3 columnas que necesitamos en la salida: SESSIONNAME, USERNAME e ID. Encuentra el (4) usuario y el ID correspondiente, en este ejemplo es ID 2. Debemos matar al csrss.exe proceso que está funcionando en esta sesión, pero tendremos que encontrarlo primero;
  2. Muestre la lista de procesos en ejecución en el ID de sesión que recibió anteriormente: query process /id 2
    proceso de consulta rds por ID de sesión Encuentra el csrss.exe proceso (verifique la columna IMAGEN) y su PID. En mi caso, el PID es 5140. Necesitas matar este proceso.
  3. Compruébalo en el Administrador de tareas. Abra el Administrador de tareas, vaya al Detalles pestaña y busque el PID y el proceso del paso anterior. matar el proceso csrss.exe de una sesión de usuario RDS atascada Si el PID que necesita corresponde al proceso csrss.exe, finalice el proceso haciendo clic en Tarea final en el menú contextual o ingresando el siguiente comando en el símbolo del sistema: taskkill /F /PID 5140

Hágalo para cada (4) usuario si hay alguno.

Restablecimiento de una sesión de usuario de RDS

Si no pudo cerrar la sesión de un usuario problemático en el Administrador de tareas, puede intentar restablecer una sesión de usuario RDS desde el símbolo del sistema:

  1. Abra el símbolo del sistema como administrador y ejecute el comando: query session
    Copie el SESSIONNAME del usuario problemático.
  2. Ingresar: reset session <SESSIONNAME> Especifique el nombre de la sesión que tiene en lugar de como se muestra en la captura de pantalla a continuación: rdsh restablecer sesión

Hágalo para cada sesión de usuario de RDS con problemas. A continuación, puede intentar iniciar sesión y no debería volver a producirse ningún problema. Si puede reiniciar su servidor, es mejor hacerlo.

Verifique la configuración de licencias en su host RDS

Asegúrese de que el servidor de licencias y el tipo de licencia (CAL por usuario / CAL por dispositivo) especificados en su host RDS sean correctos.

Una vez que recibí el error ‘La tarea que está intentando hacer no se puede completar porque los Servicios de escritorio remoto están ocupados actualmente‘cuando después de la instalación del rol RDSH olvidé especificar el nombre de host / dirección IP del servidor con el rol de Licencias de Escritorio Remoto. En ese caso, dos usuarios de RDP se conectaron como de costumbre y el tercero enfrentó este error.

Puede especificar la dirección del servidor con licencias RDS:

  • En la configuración de la colección RDS: Tareas -> Editar propiedades de implementación -> Licencias de RD -> Especificar un servidor de licencias;RDS: configura el servidor de licencias de RD y el modo CAL
  • En GPO: Utilice los servidores de licencias de Escritorio remoto especificados (Configuración de la computadora -> Políticas -> Plantillas de administración -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Licencias) GPO Use los servidores de licencias de Escritorio remoto especificados
  • Uso de PowerShell (consulte el artículo El modo de licencia para el host de sesión de escritorio remoto no está configurado).

Eliminar el límite de conexión RDP en GPO

Puede utilizar las políticas de grupo para limitar el número de conexiones RDS simultáneas (simultáneas). Esta configuración de política está deshabilitada de forma predeterminada.

Asegúrese de que la política esté habilitada y obtenga su valor usando gpresult.

  1. Ejecute el siguiente comando en el símbolo del sistema elevado: gpresult /H c:gpresult.html
  2. Abra el archivo gpresult.html ubicado en la raíz del disco C. Es un archivo .html común y se recomienda abrirlo en Internet Explorer ya que puede mostrarse incorrectamente en otros navegadores;
  3. Busque la configuración de GPO denominada Limitar el número de conexiones debajo Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto Conexiones o escriba Limitar el número de conexiones para buscar en la página

Si no existe dicha configuración de política, no se aplica y no hay restricciones en el número de conexiones simultáneas. Si la política está habilitada y se establece el número máximo de conexiones, cambie el valor como desee. Puede editar un editor de políticas de grupo local (gpedit.msc), y si la política se establece mediante el GPO de dominio, edítela en gpmc.msc. Una vez que lo haya hecho, no olvide ejecutar el comando gpupdate /force para actualizar y aplicar la nueva configuración de directiva de grupo inmediatamente.

Soluciones listas para usar: qué hacer si nada ayuda

Si tiene suficientes recursos de servidor, no ve errores en los registros de RDP, restablecer la sesión del usuario no ayudó por alguna razón y no puede reiniciar el host RDSH de inmediato, entonces debería probar las siguientes opciones:

  • Asegúrese de que el Drenar El modo que impide que los usuarios creen nuevas conexiones RDP está deshabilitado: chglogon.exe /QUERY. Si el comando devuelve ‘Los inicios de sesión de nuevos usuarios están DESHABILITADOS, pero las reconexiones a sesiones existentes están HABILITADAS’, deshabilite el modo de drenaje: chglogon.exe /enable chglogon.exe deshabilita el modo de drenaje
  • Desmarcar Almacenamiento en caché de mapa de bits persistente en la configuración de conexión RDP del mstsc.exe cliente; deshabilitar el almacenamiento en caché de mapa de bits persistente en las propiedades de conexión RDP
  • Reinicie el servicio de escritorio remoto usando los comandos: net stop termservice y net start termservice. O reinicie el servicio de forma remota usando PowerShell: Get-Service termservice –ComputerName mun-rdsh1 | Restart-Service
  • Mátalos a todos tstheme.exe procesos;
  • Se recomienda aplicar todas las actualizaciones más recientes para su versión de Windows, usar herramientas de actualización estándar (o el módulo PSWindowsUpdate PowerShell).

Artículos Interesantes