Problemas de rendimiento de RDS y RemoteApp en Windows Server 2019/2016

En este artículo, he reunido algunas soluciones a problemas comunes de rendimiento con servidores RDS o RemoteApp publicados que he encontrado en mi infraestructura. Antes de implementar cualquiera de las soluciones o alternativas, verifique si es adecuado para su infraestructura y entorno.

Corrección del rendimiento de RDS en Windows Server 2016/2019 con UPD

Los servidores RDS que ejecutan Windows Server 2019/2016 con una gran cantidad de usuarios pueden experimentar un rendimiento lento al usar discos de perfil de usuario.

El problema es que se crean nuevas reglas de entrada y salida en el Firewall de Windows Defender cada vez que un usuario inicia sesión. Esas reglas de firewall no se eliminan automáticamente cuando el usuario cierra la sesión.

Con el tiempo, aparecen muchas reglas duplicadas en el firewall, lo que conduce a una disminución drástica en el rendimiento del servidor RDS (inicio de sesión lento, pantalla negra al iniciar sesión a través de RDP, hosts RDS congelados, los menús no se abren y el Inicio el botón no aparece).

windows server 2019 rds: bajo rendimiento muchas reglas de firewall

Verifique la cantidad de reglas en el Firewall de Windows Defender usando el comando PowerShell:

(Get-NetFirewallRule).count

miles de reglas de firewall de usuarios en rds con discos de perfil de usuario

En mi caso, uno de los hosts RDS tenía 18,000 reglas del cortafuegos! Estas reglas se crean para las aplicaciones de Windows UWP Store cada vez que un usuario inicia sesión.

Para solucionar el problema, primero debe instalar las actualizaciones de seguridad más recientes para su versión de Windows Server (al menos KB4467684 en Windows Server 2016 y KB4490481 para Windows Server 2019). Luego cree el siguiente parámetro de registro en su RDSH:

  • Clave de registro: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy
  • Escriba: REG_DWORD
  • Propiedad: DeleteUserAppContainersOnLogoff
  • Valor: 1

Puede crear una propiedad de registro con el comando de PowerShell:

New-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1

No olvide borrar manualmente las reglas de entrada y salida en el Firewall de Windows Defender. Si hay pocas reglas de firewall, puede usar un script de PowerShell del hilo de TechNet (https://social.microsoft.com/Forums/Azure/en-US/992e86c8-2bee-4951-9461-e3d7710288e9/windows-servr-2016-rdsh-firewall-rules-created-at-every-login?forum= winserverTS).

En lugar de usar discos de perfil de usuario en servidores RDS, puede usar contenedores FSLogix modernos para almacenar perfiles de usuario.

Bajo rendimiento de RDS/RemoteApp debido a la alta tasa de sondeo del mouse

Muchos usuarios se quejan del bajo rendimiento de la sesión RDP, la alta latencia y los retrasos del mouse después de migrar la granja RDS a Windows Server 2019. El mouse responde muy lentamente al movimiento, el cursor tiembla y se congela.

Este problema puede estar relacionado con la alta configuración de DPI y la tasa de sondeo de algunos ratones ópticos (generalmente ratones para juegos). Por ejemplo, el popular mouse Logitech G203 tiene una tasa de sondeo predeterminada de 1000 veces por segundo (1000 Hz). Una alta tasa de sondeo del mouse parece causar una gran carga en la conexión RDP y es posible que experimente retrasos al trabajar con RemoteApps. Si reduce este valor a 125 veces por segundo (125 Hz), el problema del mouse en la sesión RDP desaparecerá.

Puede reducir la tasa de sondeo utilizando las herramientas del mouse del proveedor.

Disminuir la tasa de sondeo para el mouse para juegos rds.

Si no puede reducir la tasa de sondeo, intente deshabilitar la sombra del cursor del mouse (desmarque la casilla Habilitar sombra de puntero opción) y seleccione la Ninguna esquema para el puntero en la configuración del mouse en el Panel de control de Windows (main.cpl).

deshabilite la sombra del puntero del mouse y use el esquema no en el servidor de Windows rdsh

La aplicación remota, el mouse y el menú lentos se retrasan después de la actualización de Windows 10

Los usuarios pueden experimentar problemas de rendimiento con las aplicaciones remotas publicadas en los servidores RDS de Windows Server 2019/2016/2012R2 después de la actualización de la compilación de Windows 10. RDS RemoteApps puede comenzar a funcionar mucho más lento, cualquier acción causada por un clic del mouse se realiza (dibuja) 2-3 veces más y los menús contextuales en RemoteApps se muestran lentamente (los elementos del menú parpadean, debe hacer clic en ellos varias veces , a veces no aparecen en absoluto). Ocurrieron problemas similares al actualizar versiones de Windows 10 en clientes a 1803 y 20H2.

En este caso, los problemas no ocurren en el modo de conexión RDP de pantalla completa establecido con el integrado Mstsc.exe o cliente RDCMan.

Para solucionar este problema, puede intentar cambiar el valor de la Usar Gráficos RemoteFX avanzados para RemoteApp parámetro a Desactivado usando el editor de GPO local (gpedit.msc) (sección de GPO: Configuración de la computadora -> Políticas -> Plantillas administrativas -> Componentes de Windows -> Servicios de escritorio remoto -> Host de sesión de escritorio remoto -> Entorno de sesión remota).

Usar gráficos Advanced RemoteFX para RemoteApp - gpo

Si los programas gráficos (habituales, las aplicaciones CAD) se publican como RemoteAPP, no funcionarán sin la compatibilidad con Remote FX.

Sin embargo, también existe una solución alternativa para reemplazar la versión del cliente RDP por una más antigua. Debido a que también se encontraron problemas de rendimiento con RemoteApp en Windows 10 1709, es mejor usar las bibliotecas RDP de 1607 o 1703. El problema es que después de actualizar la compilación de Windows 10, se instala una nueva versión del cliente RDP, que no funcionar correctamente con los programas publicados a través de RDS RemoteApp.

Puede corregir el bajo rendimiento de RemoteApp en los clientes reemplazando los archivos mstsc.exe y mstscax.dll en la carpeta C:WindowsSystem32 con las versiones de una versión anterior de Windows 10 (1703 o 1607).

¿Cómo reemplazar los archivos del cliente RDP en Windows 10?

  1. Cierre todas las conexiones RDP y ejecute RemoteApp (es mejor incluso reiniciar la computadora);
  2. Descargue el archivo con las versiones de mstsc.exe y mstscax.dll de la compilación de Windows 10 1607 (mstsc-w10-1607.zip);
  3. Copie los archivos mstsc.exe y mstscax.dll originales de C:windowssystem32 a C:BackUp usando los comandos:md c:backup
    copy C:windowssystem32mstsc.exe c:backup
    copy C:windowssystem32mstscax.dll c:backup
  4. Luego debe asignar su cuenta al propietario de los archivos mstsc.exe y mstscax.dll en el directorio C:windowssystem32, deshabilitar la herencia y otorgarse los permisos para modificar los archivos:takeown /F C:windowssystem32mstsc.exe
    takeown /F C:windowssystem32mstscax.dll
    icacls C:windowssystem32mstsc.exe /inheritance:d
    icacls C:windowssystem32mstscax.dll /inheritance:d
    icacls C:windowssystem32mstsc.exe /grant root:F
    icacls C:windowssystem32mstscax.dll /grant root:F
    reemplazar mstsc.exe y mstscax.dll
    En este ejemplo, el nombre de la cuenta local con permisos de administrador es raíz. Reemplácelo con el nombre de su cuenta.
  5. Reemplace los archivos en el directorio C:windowssystem32 con los archivos del archivo;
  6. Restaure los permisos originales en los archivos copiados. Para hacer esto, habilite la herencia de permisos NTFS y establezca el propietario de los archivos en «NT ServiceTrustedInstaller» usando la herramienta ICACLS:icacls C:windowssystem32mstsc.exe /inheritance:e
    icacls C:windowssystem32mstscax.dll /inheritance:e
    icacls C:windowssystem32mstsc.exe /setowner "NT ServiceTrustedInstaller" /T /C
    icacls C:windowssystem32mstscax.dll /setowner "NT ServiceTrustedInstaller" /T /C
  7. Queda por volver a registrar la biblioteca:
    regsvr32 C:WindowsSystem32mstscax.dll

Esto solucionará temporalmente el problema de rendimiento de RemoteApp en los clientes de Windows 10.

Artículos Interesantes