Ceci est une ancienne révision du document !


Nettoyer la conf du Broker RDS manuellement

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 :

  • Afficher les hôtes de sessions d'un déploiement :
Get-RDSessionHost
  • Afficher les hôtes membres d'une collection :
Get-RDSessionCollectionConfiguration
  • Sortir une machine d'une collection RDS :
Remove-RDSessionHost -SessionHost "rds01.domaine.local" -CollectionName "NomCollection" -Force
  • Afficher les hôtes de session rattachés au broker :
Get-RDServer
  • Détacher un serveur du déploiement RDS :
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) :

  • Se connecter au serveur SQL interne avec le nom de serveur suivant (le chiffrement doit être facultatif) :
np:\\.\pipe\MICROSOFT##WID\tsql\query

ou encore :

\\.\pipe\MICROSOFT##WID\tsql\query
  • Naviguer jusqu'à la base RDCms pour voir les données
  • Identifier l'ID du serveur à supprimer via une requête SQL :
USE RDCms;
 
SELECT * 
FROM rds.Server
WHERE Name LIKE '%rds01%';
  • Vérifier que l'hôte fait partie d'une collection :
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;
  • Supprimer le serveur du déploiement RDS :
DELETE FROM rds.Server
WHERE Id = 12;
  • Terminer en redémarrant le service du broker (n'impacte pas les connexions RDS en cours) :
Restart-Service Tssdis
  • Vérifications :
Get-RDSessionHost
Get-RDServer