¿Cómo quitar el host de sesión de escritorio remoto de la implementación de servicios de escritorio remoto?

Para eliminar un host RSDH de una colección/granja de sesiones de Servicios de Escritorio remoto, puede usar la consola gráfica del Administrador del servidor o el Quitar RDSessionHost Cmdlet de PowerShell.

Puede usar el siguiente comando de PowerShell si desea eliminar un host de sesión de escritorio remoto en línea de una colección de sesiones en una granja de RDS:

Remove-RDSessionHost -SessionHost @("rdsh2.woshub.com") -ConnectionBroker rdcb.woshub.com –verbose

VERBOSE: The specified RD Session Host server will be removed from the session collection.

Si el servidor RDSH que desea eliminar está fuera de línea (host inactivo/fallido cuando no puede iniciar Windows o el hardware del servidor está dañado), recibirá el siguiente error cuando intente eliminarlo de su implementación de RDS:

WARNING: Unable to cleanup the RD Session Host server rdsh1.

Remove-RDSessionHost: no se puede limpiar el servidor Host de sesión de escritorio remoto

Si intenta eliminar un servidor de este tipo que ejecuta la función de Host de Servicios de Escritorio remoto de una implementación de RDS mediante el Administrador del servidor, verá este error:

Could not remove the configuration. Object reference not set to an instance of an object.

Rol de host de escritorio remoto: no se pudo eliminar la configuración. Referencia a objeto no establecida como instancia de un objeto.

Además, no puede administrar su granja RDS a través del Administrador del servidor porque después de eliminar el host RDSH de la consola, verá la siguiente advertencia:

The following servers in this deployment are not part of the server pool:
rdsh2.woshub.com
The servers must be added to the server pool.

Para eliminar correctamente un host RDS fallido, no volverá a su granja, debe eliminar sus metadatos de la base de datos de RD Connection Broker (RDCB).

Para hacerlo, conéctese a la base de datos RDCB utilizando SQL Management Studio.

  • Si está utilizando una base de datos local del agente de conexión a escritorio remoto basada en la base de datos interna de Windows (WID), use la siguiente cadena de conexión para conectarse a la instancia de SQL: \.pipeMICROSOFT##WIDtsqlquery
  • Si su base de datos RDCB se ejecuta en un servidor SQL o en un grupo de alta disponibilidad Always On de SQL Server (si está utilizando una función de agente de conexión a Escritorio remoto de alta disponibilidad), conéctese al agente de escucha de SQL Server adecuado (puede obtenerlo con el comando : Get-RDConnectionBrokerHighAvailability )

Ejecute SQL Management Studio y conéctese a la base de datos utilizando una cuenta con privilegios de administrador local en el servidor.

conectar la base de datos rds con SQL Management Studio

Se recomienda encarecidamente hacer una copia de seguridad de la base de datos SQL del Agente de conexión a Escritorio remoto antes de realizar cualquier cambio.

Ampliar la RDCms base de datos y busque las siguientes tablas que contienen entradas sobre los hosts de la granja RDS:

  • rds.servidor – una lista completa de servidores en la granja de servicios de escritorio remoto
  • rds.RoleRdsh – una lista de servidores con la función Host de sesión de escritorio remoto
  • rds.RoleRdcb — Agente de conexión
  • rds.RoleRdls — Servidores de licencias RDSr
  • rds.RoleRdvh — Servidores de virtualización
  • rds.RoleRdwa — Anfitriones de acceso web

En nuestro caso, solo se ejecuta el rol RDSH en el servidor, lo que significa que es suficiente eliminar sus entradas del rds.servidor y rds.RoleRdsh mesas.

Busque en la tabla el ID del servidor RDSH que desea eliminar de la implementación de RDS. En mi ejemplo, es ID 3.

Base de datos de configuración de RD

Utilice la siguiente consulta T-SQL para eliminar los registros RDSH de ambas tablas de la base de datos del agente de conexión:

use RDCms;
delete from rds.RoleRdsh where ServerID = '3';
delete from rds.Server where Id = '3';

eliminar el servidor de escritorio remoto de la base de datos RD con T-sql

Cierre la base de datos y reinicie la consola del Administrador del servidor. Abra la consola RDS, actualice la configuración y asegúrese de que el servidor eliminado ya no aparezca en la lista de hosts RDS disponibles.

eliminando el host inactivo de la implementación de rds

También puede asegurarse de que no haya ningún servidor eliminado en la granja de RDS con este comando:

Get-RDServer

Si desea migrar los roles de Agente de conexión a Escritorio remoto o Acceso web de Escritorio remoto a otro servidor, use esta guía.

Artículos Interesantes