Cómo migrar roles RDS como Connection Broker y Web Access a un nuevo servidor

Asignar roles de RDS entre servidores puede ser un verdadero engorro, sobre todo si intentas migrar de una configuración antigua de Windows Server 2012 R2 a una más reciente de Windows Server 2019. A veces parece que Windows no está diseñado para facilitar las migraciones; hay que hacer mucho trabajo manual, y una configuración incorrecta puede arruinar toda la implementación. Esta guía debería ayudarte a desentrañar ese lío y a migrar tus roles de Escritorio Remoto sin complicaciones; pero sí, no es tan sencillo como parece, así que prepárate para algunas modificaciones.

Cómo solucionar migraciones de roles RDS entre servidores

Método 1: Exportar e importar configuraciones de RDS con PowerShell

Este método consiste en exportar la configuración de RDS existente y luego importarla al nuevo servidor. Resulta útil si desea conservar la misma implementación, pero migrarla a un nuevo host. Funciona porque Windows no cuenta con una forma integrada y sencilla de transferir las configuraciones de RDS; por lo tanto, se utiliza un módulo de PowerShell llamado ExportImportRdsDeployment. Actúa como una copia de seguridad y luego una restauración para la implementación de RDS.

Primero, necesitas PowerShell 5.1 o superior. Si aún usas Windows Server 2012 R2, probablemente no tengas «Install-Module» disponible por defecto. Esto se debe a que Windows PowerShell 5.1 aún no está instalado, así que necesitarás descargar la actualización KB3191564 del sitio web de Microsoft. Una vez instalada, puedes ejecutar comandos como:

Install-Module ExportImportRdsDeployment -Force Import-Module ExportImportRdsDeployment 

Ahora bien, si PowerShell genera un error indicando que no se reconoce `Install-Module`, probablemente se deba a que su servidor no está actualizado. Además, asegúrese de que su sesión de PowerShell se ejecute con privilegios de administrador.

Una vez instalado el módulo, puede exportar su configuración RDS actual con:

Export-RDCollectionsFromConnectionBroker -ConnectionBroker localhost -XMLFile c:\ps\rdsoldcol.xml -Verbose Export-RDDeploymentFromConnectionBroker -ConnectionBroker localhost -XMLFile c:\ps\rdsdeployment.xml -Verbose 

Recuerda, si usas certificados comodín (como *.midominio.com), expórtalos también en formato PFX y mantén las contraseñas seguras. Copia esos archivos junto con tus configuraciones XML al nuevo equipo con Windows Server 2019.

Al importar al nuevo servidor, ejecutará comandos como:

$RDGatewayCertPath = "C:\\PS\\nocert.pfx" $RDWebAccessCertPath = "C:\\PS\\nocert.pfx" $RDRedirectorCertPath = "C:\\PS\\nocert.pfx" $RDPublishingCertPath = "C:\\PS\\nocert.pfx" $RDGatewayCertPassword = ConvertTo-SecureString -String "nopass" -AsPlainText -Force $RDWebAccessCertPassword = ConvertTo-SecureString -String "nopass" -AsPlainText -Force $RDRedirectorCertPassword = ConvertTo-SecureString -String "nopass" -AsPlainText -Force $RDPublishingCertPassword = ConvertTo-SecureString -String "nopass" -AsPlainText -Force Import-RDDeploymentToConnectionBroker -ConnectionBroker localhost -XmlFile c:\ps\rdsdeployment.xml ` -RDGatewayCertPath $RDGatewayCertPath ` -RDGatewayCertPassword $RDGatewayCertPassword ` -RDWebAccessCertPath $RDWebAccessCertPath ` -RDWebAccessCertPassword $RDWebAccessCertPassword ` -RDRedirectorCertPath $RDRedirectorCertPath ` -RDRedirectorCertPassword $RDRedirectorCertPassword ` -RDPublishingCertPath $RDPublishingCertPath ` -RDPublishingCertPassword $RDPublishingCertPassword -Verbose 

Si no usa certificados, ignore esas partes y ejecute el comando sin los parámetros del certificado. Después, compruebe si el rol de agente de conexión a Escritorio remoto aparece en el nuevo servidor con:

Get-RDServer -Role "ConnectionBroker"

Si todo se ve bien allí, puedes importar tus colecciones RDS con:

Import-RDCollectionsToConnectionBroker -ConnectionBroker localhost -XmlFile "C:\PS\rdsoldcol.xml" -Verbose

Debería replicar su implementación anterior con bastante precisión. Después, revise la consola del administrador de RDS para confirmar que todas las RemoteApps y colecciones estén presentes y, a continuación, elimine el rol del servidor anterior con:

Remove-WindowsFeature RDS-Connection-Broker

De esta forma, básicamente estás clonando todo de un servidor a otro. Ten cuidado con las discrepancias de IIS o certificados si la disponibilidad del acceso web a Escritorio remoto parece extraña posteriormente; a veces es necesario realizar ajustes manuales si la configuración de IIS o los certificados no se transfieren correctamente. Además, si la URL ha cambiado, actualiza las políticas de SSO web de Escritorio remoto según corresponda.

Método 2: Implementación manual de IIS y web para acceso web RDS

Si está trasladando el rol de Acceso Web a Escritorio Remoto y la configuración de la interfaz web no coincide, puede que necesite una importación manual. Especialmente si cambia de versión de Windows Server a otra de IIS. En el servidor de origen, puede usar Microsoft Web Deploy v3.6 para exportar la configuración del sitio de IIS. Descárguelo de la página de descarga de Microsoft Web Deploy. Instálelo en ambos servidores: de origen y de destino.

Una vez instalado, puede realizar una copia de seguridad del sitio de acceso web con un comando como:

msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:archivedir=c:\ps\rdweb

Luego, en el servidor de destino, sincronice esas configuraciones con:

msdeploy -verb:sync -source:archivedir=c:\ps\rdweb -dest:appHostConfig="Default Web Site"

Fácil, pero asegúrese de que sus configuraciones de IIS sean compatibles. Si cambió la URL o los enlaces SSL, actualícelos manualmente en el administrador de IIS. Además, verifique que sus configuraciones personalizadas, como las páginas de cambio de contraseña u otras configuraciones integradas, sigan funcionando después de la transferencia.

Por último, si su acceso web a Escritorio remoto usa una URL diferente, no olvide actualizar su política de inicio de sesión único u otras configuraciones relacionadas. No siempre es sencillo, pero conviene hacerlo para una configuración limpia.

Sinceramente, migrar roles de RDS no es del todo sencillo, pero con estos pasos, no es imposible. Es posible que haya que probar y fallar, especialmente si se trata de certificados o configuraciones de IIS. Normalmente, basta con tener paciencia y hacer copias de seguridad previamente.

Resumen

  • Utilice módulos de PowerShell para exportar/importar configuraciones de RDS
  • Asegúrese de que su versión de PowerShell esté actualizada
  • Exportar la configuración de acceso web con Web Deploy si es necesario
  • Verifique nuevamente los certificados, las URL y las configuraciones de IIS después de la migración
  • Elimine los roles de los servidores antiguos solo después de que se confirme que todo funciona en el nuevo host

Resumen

Con suerte, esto te ofrecerá una solución eficaz para el caos que supone migrar RDS. Es un poco lioso por diseño, pero al menos estos métodos cubren la mayoría de los escenarios. Prepárate para hacer algunos ajustes manuales aquí y allá; Windows no te guía en este tipo de cosas. A mí me funciona, espero que a ti también.