Búsqueda de sitios web

Configuración de la granja de servicios de escritorio remoto (RDS) en Windows Server


Esta guía muestra cómo instalar, configurar y mantener una granja de servidores de terminales basada en la función Servicios de escritorio remoto (RDS) en Windows Server. El artículo lo ayudará a implementar Servicios de escritorio remoto en Windows Server 2022, 2019 o 2016 en un dominio de Active Directory.

Arquitectura de componentes de servicios de escritorio remoto (RDS)

La función RDS en Windows Server incluye los siguientes componentes:

  • Host de sesión de escritorio remoto (RDSH): hosts de sesión RDS. Estos son los principales caballos de batalla de una granja de RDS en los que se ejecutan las aplicaciones de los usuarios;

  • Agente de conexión a escritorio remoto (RDCB): un agente de conexión RDS. Se utiliza para administrar una granja de RDS, distribuir la carga de trabajo, volver a conectar a los usuarios a sus sesiones, almacenar configuraciones de recopilación de RDS y RemoteApps publicadas;

  • Puerta de enlace de escritorio remoto (RDGW): proporciona acceso seguro a la granja RDS desde Internet;

  • RD Web Access (RDWA): una interfaz web para acceder a escritorios remotos y RemoteApps;

  • Licencias de escritorio remoto (licencias RD): un servicio de licencias para administrar licencias RDS (CAL).

En nuestra pequeña implementación de RDS, solo hay tres hosts de Windows Server con las siguientes funciones:

  • mun-rds1.a-d.site

    — RDSH

  • mun-rds2.a-d.site

    - RDSH

  • mun-rdsman.a-d.site

    - Licencias RDSH, RDWA, RDCB y RD

En el caso más simple, puede implementar un servidor independiente con el rol de host de sesión de escritorio remoto (RDSH) sin el agente de conexión y el acceso web de RDS.

Requisitos previos para crear una granja RDS:

  1. Instale la misma versión de Windows Server en todos los hosts RDS, configúrelos y únase al dominio AD;

  2. Abra la consola ADUC (dsa.msc) y mueva todos los hosts con la función RDSH a la misma unidad organizativa (OU) de Active Directory. Por lo tanto, será más fácil aplicar la configuración de RDS usando GPO;

  3. Cree un grupo de seguridad de dominio de Active Directory para servidores RDSH (por ejemplo, mun-rdsh) y agréguele todos los hosts;

  4. Si desea utilizar discos de perfil de usuario (UPD) para almacenar perfiles de usuario de RDS (o perfiles móviles), debe crear una carpeta de red compartida en un servidor de archivos (se recomienda colocar la carpeta compartida en un clúster de conmutación por error del servidor de archivos que ejecute Windows Server). Otorgue permisos de Control total en la carpeta compartida para el grupo mun-rdsh.

Creación de una nueva implementación de RDS en Windows Server

Veamos cómo crear y configurar una configuración de RDS usando la GUI del Administrador del servidor.

Abra el Administrador de servidores y agregue todos los servidores RDS que desee a la consola. Haga clic en Todos los servidores -> Agregar servidores.

Haga clic en el menú Administrador del servidor y seleccione Agregar funciones y funciones -> Instalación de servicios de escritorio remoto -> Implementación estándar -> Implementación basada en sesiones.

El modo Inicio rápido se utiliza para implementar todas las funciones de RDS en un solo servidor. Una granja de RDS solo puede tener un servidor que ejecute todas las funciones de RDS (host de sesión de Escritorio remoto, acceso web de Escritorio remoto y agente de conexión de Escritorio remoto). Sin embargo, esta configuración no proporciona tolerancia a fallas ni equilibrio de carga de trabajo en Servicios de escritorio remoto de Windows Server.

Luego, especifique qué funciones de RDS desea asignar a sus hosts. Seleccione los servidores para los roles correspondientes en el asistente de creación de granjas RDS. En mi caso, quiero construir la siguiente configuración de RDS:

  • Agente de conexión a Escritorio remoto:

     mun-rdsman
  • Acceso web de Escritorio remoto:

    mun-rdsman
  • Anfitriones de sesiones de escritorio remoto:

    mun-rdsman

    ,

    mun-rds1

    ,

    mun-rds2

Puede distribuir funciones de RDS entre servidores en cualquier otra configuración.

Marque Reiniciar el servidor de destino automáticamente si es necesario y haga clic en Implementar. Espere hasta que los roles de RDS estén instalados en todos los servidores.

Entonces, se crea su granja RDS.

El siguiente paso es instalar y configurar el servidor de licencias RDS. Puede instalar el rol Licencias de RD en uno de los servidores de su granja o usar un servidor de licencias de RDS existente en su dominio. Consulte la guía detallada sobre cómo instalar, configurar y activar el rol de licencias de RD.

Para administrar su implementación de RDS, abra Administrador del servidor -> Servicios de escritorio remoto. La configuración actual de la granja de RDS se muestra en la pestaña Descripción general.

Para cambiar la configuración de la granja de RDS, seleccione Tareas -> Editar propiedades de implementación en la sección Descripción general de la implementación.

Aquí puedes cambiar:

  • Configuración de la puerta de enlace de escritorio remoto;

  • Dirección del servidor de licencias y tipo de CAL de RDS (por usuario/por dispositivo);

  • Ver URL de acceso web de Escritorio remoto;

  • Agregue certificados SSL para RDS (omitiremos este paso en la guía).

Puede administrar la granja a través del host RDCB. La configuración de la granja de RDS se almacena en la base de datos de SQL Server. Si lo desea, puede mover manualmente la función y la configuración del Agente de conexión de RDS a otro servidor.

Para crear una granja de servidores de Servicios de Escritorio remoto tolerante a errores, debe proporcionar alta disponibilidad para la función Agente de conexión a Escritorio remoto. Esto se logra mediante la ejecución de varias instancias de RDCB (Activo/Activo) en diferentes servidores con una base de datos de SQL Server compartida que almacena la configuración del agente de conexión. Puede usar el grupo de alta disponibilidad de SQL Server Always On para hacer que la base de datos SQL de RDCB esté disponible. Anteriormente publicamos una guía detallada sobre cómo configurar un agente de conexión RDS de alta disponibilidad.

Crear colecciones de servicios de escritorio remoto en Windows Server

El siguiente paso es crear colecciones de sesiones RDS. Las colecciones de Escritorio remoto permiten dividir hosts en una granja RDS en grupos separados o crear diferentes conjuntos de configuraciones y aplicaciones remotas disponibles para diferentes grupos de usuarios.

Vaya a Colecciones y seleccione Editar -> Crear colección de sesión.

Aquí necesitas:

  1. Especifique un nombre de colección RDS:

     rds-Mun-Managers

    ;

  2. Seleccione qué hosts RDS atenderán a los usuarios de la colección (un servidor RDSH puede pertenecer a una colección, no se recomienda tener hosts con diferentes versiones de Windows Server en la misma colección);

  3. En la pestaña Grupos de usuarios, especifique los grupos de usuarios que pueden conectarse a la colección. Elimina los Usuarios de dominio de los grupos y agrega tu grupo (

    mun-Managers

    );

  4. En la pestaña Disco de perfil de usuario, marque Habilitar discos de perfil de usuario si desea utilizar el formato de archivo UPD vhdx para almacenar perfiles de usuario. En el campo Ubicación de los discos de perfil de usuario, especifique la ruta UNC a su carpeta compartida (por ejemplo,

    \\mun-fs01\munrds_upd

    ), en el que se almacenarán los archivos de perfil de usuario en formato UPD y el tamaño máximo del disco (20 GB por defecto). Al usar UPD, si un usuario inicia sesión en cualquier host de recopilación de RDS, el perfil compartido del usuario siempre se cargará;

    Obtenga más información sobre los discos de perfil de usuario en Windows Server RDS en este artículo.

  5. Haga clic en Crear para crear una nueva colección RDS;

  6. Asegúrese de que el archivo UPD (UVHD-template.vhdx) con la plantilla de perfil de usuario se cree en el directorio especificado.

Para configurar los ajustes de la colección RDS, seleccione la colección y haga clic en Tareas -> Editar propiedades.

Aquí puede cambiar las opciones básicas de recopilación (nombre, descripción, grupos de acceso) y algunas otras configuraciones.

En la pestaña Sesión, puede configurar las opciones de reconexión/desconexión automática para sesiones RDP inactivas (inactivas) (obtenga más información sobre cómo configurar tiempos de espera para sesiones RDP).

En la pestaña Seguridad, puede seleccionar la configuración de seguridad (Negociación, Nivel de seguridad RDP o SSL/TLS) y cifrado (Bajo, Alto, Compatible con el cliente o compatible con FIPS) para las sesiones RDP. Aquí puede habilitar/deshabilitar la autenticación de nivel de red (NLA) para RDP.

Aquí se explica cómo configurar certificados SSL/TLS para proteger las conexiones RDP.

En la pestaña Equilibrio de carga, puede cambiar el Peso relativo del host RDS en su granja. Si las características del servidor (RAM, CPU) en una colección son muy diferentes, debe establecer un peso más bajo para los hosts con un rendimiento más bajo. Después de eso, RDCB distribuirá las sesiones de usuario entre los hosts RDS según su peso.

La pestaña Configuración del cliente le permite especificar a qué dispositivos locales los usuarios pueden redirigir a sus sesiones de RDP. Por ejemplo, puede habilitar o deshabilitar la redirección de impresoras, unidades, dispositivos de audio o el portapapeles desde la computadora de un usuario local a la sesión de RDS.

En la pestaña Discos de perfil de usuario, puede ajustar la configuración de UPD. Puede excluir ciertas carpetas o archivos de la sincronización. Permite reducir el tamaño del perfil UPD en una carpeta de red compartida y hace que un perfil se cargue más rápido (recuerde que se carga en la red desde la carpeta compartida cuando un usuario inicia sesión).

Es más fácil configurar y usar UPD que los perfiles móviles o la redirección de carpetas. No puede usar el mismo perfil UPD en más de una colección RDS.

Para reducir el tamaño de un disco UPD de usuario, puede usar el cmdlet integrado de PowerShell

Resize-VHD

, que se utiliza para cambiar el tamaño de los discos virtuales VHDX de Hyper-V.

Puede poner cualquier servidor RDSH en modo de mantenimiento (RDS Drain Mode) a través de la sección SERVIDORES HOST de la colección RDS. Para hacerlo, haga clic en un servidor y seleccione No permitir nueva conexión. Luego, el Agente de conexión no enviará nuevas sesiones de usuario al host de Escritorio remoto. En este modo, puede instalar actualizaciones de Windows o actualizar aplicaciones en el servidor sin afectar a los usuarios.

Aquí también puede agregar/eliminar un host RDS de una colección.

Si el servidor Host de sesión de Escritorio remoto falla, puede eliminarlo correctamente de su implementación de Servicios de Escritorio remoto siguiendo esta guía.

¿Cómo publicar aplicaciones remotas en servicios de escritorio remoto?

RemoteApps son programas publicados para usuarios en servidores RDS. Gracias a RemoteApps, puede usar aplicaciones instaladas en un servidor RDSH de terminal como si se estuvieran ejecutando en una computadora de usuario local. El usuario no ve todo el escritorio de Windows Server RDS y solo trabaja con aquellas aplicaciones que un administrador ha publicado para él. Solo la ventana del programa que se ejecuta en RDS se mostrará en la computadora del usuario.

Si no crea RemoteApps, los usuarios trabajarán directamente en el escritorio de Windows Server. Así que recuerda copiar los accesos directos de la aplicación que un usuario pueda necesitar en C:\Users\Public\Desktop. Los archivos de esta carpeta se mostrarán en los escritorios de todos los usuarios. Si desea instalar MS Office 365 en su RDSH, tenga en cuenta que Office debe implementarse en el modo SharedComputerLicensing.

Las RemoteApps se crean en la configuración de la colección RDS. Seleccione Tareas -> Publicar programas de RemoteApp en la sección PROGRAMAS DE REMOTEAPP.

Windows mostrará una lista de todas las aplicaciones instaladas en el host RD actual. Puede seleccionar uno de ellos. Si no hay ninguna aplicación que necesite en la lista, pero está instalada en otros hosts RDS, haga clic en Agregar y especifique la ruta completa al ejecutable de la aplicación (exe, bat, cmd, etc.).

Publicar la RemoteApp.

Luego puede especificar opciones de aplicaciones adicionales en la configuración de RemoteApp.

  • Si desea mostrar una RemoteApp publicada en la interfaz web de RD Web Access;

  • Establezca las opciones de inicio (argumentos) para la aplicación (Parámetros de la línea de comandos -> Use siempre los siguientes parámetros de la línea de comandos);

  • En la pestaña Asignación de usuarios, también puede establecer restricciones sobre si un usuario o grupo puede ejecutar la aplicación.

Si desea cambiar un icono de la RemoteApp publicada, abra la siguiente carpeta en el servidor con la función Agente de conexión de RDS:

C:\Windows\RemotePackages\CPubFarms\rds-Mun-Managers\CPubRemoteApps

Reemplace el ícono de la aplicación con otro archivo ICO.

Luego, un usuario puede ejecutar un programa RemoteApp desde RD Web Access (

https://mun-rdsman.a-d.site/RDWeb

) o usando un archivo especial *.RDP.

Puede configurar una autenticación transparente en RDS Web Access mediante SSO (Inicio de sesión único).

Para ejecutar un programa RemoteApp publicado, debe agregar las siguientes líneas al archivo RDP:

remoteapplicationmode:i:1
remoteapplicationname:s:putty
remoteapplicationprogram:s:"C:\Tools\putty.exe"
disableremoteappcapscheck:i:1
alternate shell:s:rdpinit.exe

Algunos consejos útiles para usar su granja RDS convenientemente:

  • Puede configurar la compatibilidad con HTML5 para el rol de acceso RDWeb. Permite a los usuarios conectarse a servidores RDS utilizando cualquier navegador o sistema operativo, incluso sin un cliente RDP;

  • En el servidor de RD Web Access, puede publicar un enlace para cambiar una contraseña de usuario vencida (de manera predeterminada, si NLA está habilitado, no podrá autenticarse en un RDSH con una contraseña de usuario de Active Directory vencida);

  • Una guía de usuario sobre cómo cambiar una contraseña en una sesión RDP;

  • Un administrador puede usar conexiones de sombra de sesión de RD para conectarse/ver el escritorio de una sesión de usuario en un servidor RDS;

  • Para encontrar rápidamente qué servidores RDS tienen sesiones de un usuario específico, puede usar PowerShell:

    Import-Module RemoteDesktop
    Get-RDUserSession -ConnectionBroker mun-rdsman.a-d.site | where {$_.UserName -eq "a.muller"} | Select HostServer
  • Puede usar secuencias de comandos de PowerShell para ver los registros de conexión RDP;

  • Para brindar seguridad adicional, puede habilitar la autenticación de dos factores (2FA) para los usuarios en sus hosts RDS de Windows utilizando herramientas de terceros.

¿Cómo implementar una granja de servicios de escritorio remoto usando PowerShell?

Si ve claramente la estructura de una granja de RDS, puede implementar rápidamente su configuración de RDS mediante PowerShell.

Es mejor ejecutar los siguientes comandos de PowerShell para crear una granja RDS en otro servidor, ya que deberá reiniciar los hosts RDS administrados.

Establezca los nombres de los servidores en su granja de RDS. En este ejemplo, instalaré los roles de licencia de RDCB y RDS en servidores separados (más adelante se recomienda habilitar una configuración de RDCB de alta disponibilidad).

$RDSH1 = "mun-rds1.a-d.site"
$RDSH2 = "mun-rds2.a-d.site"
$RDSCB = "mun-rdcb.a-d.site"
$RDSGW = "mun-rdsgw.a-d.site"
Import-Module RemoteDesktop

Instale roles de RDS en los servidores:

Add-WindowsFeature -ComputerName $RDSH1, $RDSH2 -Name RDS-RD-Server -IncludeManagementTools
Add-WindowsFeature -ComputerName $RDSCB -Name RDS-Connection-Broker -IncludeManagementTools
Add-WindowsFeature -ComputerName $RDSGW -Name RDS-Web-Access, RDS-Gateway -IncludeManagementTools

Reinicie todos los hosts:

Restart-Computer -ComputerName $RDSH1,$RDSH2,$RDSCB,$RDSGW

Cree una nueva instancia de RDSessionDeployment:

New-RDSessionDeployment -ConnectionBroker $RDSCB -SessionHost $RDSH1,$RDSH2 -Verbose

Agregue servidores RDWA y RDGW a su granja:

Add-RDServer -Server $RDSGW -Role RDS-WEB-ACCESS -ConnectionBroker $RDSCB
Add-RDServer -Server $RDSGW -Role RDS-GATEWAY -ConnectionBroker $RDSCB -GatewayExternalFqdn "rds.a-d.site"

Puede enumerar los roles y nombres de host de RDS en su granja:

Get-RDServer -ConnectionBroker $RDSGW

Instale el rol de licencias de RDS mediante el cmdlet Add-WindowsFeatures:

Add-WindowsFeature -ComputerName $RDSCB -Name RDS-Licensing, RDS-Licensing-UI

Establezca un modo de licencia RDS por usuario:

Invoke-Command -ComputerName $RDSCB -ScriptBlock {Set-RDLicenseConfiguration -Mode PerUser -LicenseServer $RDSCB -ConnectionBroker $RDSCB}
Add-RDServer -Server $RDSCB -Role RDS-LICENSING -ConnectionBroker $RDSCB

Agregue un servidor de licencias a un grupo de seguridad de dominio mediante Add-ADGroupMember:

Add-ADGroupMember "Terminal Server License Servers" -Members "mun-rdcb$"

Si tiene un certificado para el RDS, puede agregarlo a la configuración de su granja (puede usar el certificado SSL gratuito de Let's Encrypt para su host RDS):

$Path = "C:\ps\RDSCert.pfx"
$Password = ConvertTo-SecureString -String "setCertificPAssw00rd11-" -AsPlainText -Force
Set-RDCertificate -Role RDGateway -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDWebAccess -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDPublishing -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force
Set-RDCertificate -Role RDRedirector -ImportPath $Path -Password $Password -ConnectionBroker $RDSCB -Force

Para obtener información sobre los certificados SSL instalados:

Get-RDCertificate

Luego puede crear colecciones RDS:

$CollectionName = "ITdept"
New-RDSessionCollection -CollectionName $CollectionName -SessionHost $RDSH1,$RDSH2 -ConnectionBroker $RDSCB -CollectionDescription “IT department management collection”

Para permitir el acceso a los servidores RDS para grupos:

$UserGroup =@("WOSHUB\mun-admins","WOSHUB\mun-devops")
Set-RDSessionCollectionConfiguration -CollectionName $CollectionName -UserGroup $UserGroup

Para publicar un programa RemoteApp:

New-RDRemoteapp -Alias GoogleChrome -DisplayName GoogleChrome -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ShowInWebAccess 1 -CollectionName $CollectionName -ConnectionBroker $RDSCB

En este artículo, cubrimos cómo instalar y configurar una granja de servicios de escritorio remoto en Windows Server 2019/2022 usando la interfaz gráfica del Administrador del servidor y PowerShell. Los roles Acceso web de escritorio remoto y Puerta de enlace de Escritorio remoto no se describen aquí. Mostraremos cómo configurar estos roles en futuros artículos.

Artículos relacionados