Nettoyer la configuration du Broker RDS

Lorsqu'une machine hôte de session RDS est sortie du domaine ou arrêtée définitivement sans avoir été supprimée correctement de la configuration du déploiement RDS ou de la collection de bureaux (en passant par le Gestionnaire de serveur ou via PowerShell), sa configuration persiste dans la base SQL/WID du broker, ce qui peut causer des problèmes et empêcher la configuration du cluster depuis le Gestionnaire de serveur.

De préférence, depuis le broker, penser à retirer l'hôte de session de la collection, puis du déploiement RDS, puis du pool de serveurs, depuis le Gestionnaire de serveur (en mode graphique), ou via les commandes PowerShell appropriées :

Get-RDSessionHost
Get-RDSessionCollectionConfiguration
Remove-RDSessionHost -SessionHost "rds01.domaine.local" -CollectionName "NomCollection" -Force
Get-RDServer
Remove-RDServer -Server "rds01.domaine.local" -Role RDS-RD-SERVER -Force

Si par mégarde, une machine manque et bloque la configuration du cluster RDS (sans pouvoir être rallumée), il est possible de nettoyer manuellement la base SQL/WID du broker, en s'y connectant localement grâce SQL Server Management Studio (SMSS) :

np:\\.\pipe\MICROSOFT##WID\tsql\query

ou encore :

\\.\pipe\MICROSOFT##WID\tsql\query
USE RDCms;
 
SELECT * 
FROM rds.Server
WHERE Name LIKE '%rds01%';
SELECT *
FROM rds.SessionCollectionToServer
WHERE ServerID = 12;

* Puis le supprimer de la table :

DELETE FROM rds.SessionCollectionToServer
WHERE ServerID = 12;

* Supprimer le rôle “hôte de session” associé à la machine :

DELETE FROM rds.RoleRdsh
WHERE ServerID = 12;
DELETE FROM rds.Server
WHERE Id = 12;
Restart-Service Tssdis
Get-RDSessionHost
Get-RDServer