Voir le flux RSS

benjamin.f

[Actualité] Blocage de la console de gestion RDS suite suppression de serveur dans la ferme

Noter ce billet
par , 19/08/2020 à 17h57 (784 Affichages)
Bonjour,

Un petit billet rapide afin de regrouper des informations qui m'ont été utiles récemment et qui peuvent l'être à d'autres concernant RDS sur Windows Server 2012 R2.

Je vous passe l'histoire, mais suite au mauvais décommissionnement d'un serveur RDS inclus dans une ferme j'ai perdu la connexion à la console de gestion sur mon broker.

Le message est :
Les serveurs suivants de déploiement ne figure pas dans le pool de serveurs
1. [FQDN du serveur]
.Ajoutez les au pool de serveurs
Bref, si vous souhaitez supprimer un serveur RDS inclus dans une ferme RDS, faites le bien!
Supprimez le rôle avant ou utilisez Powershell tel que présenté ci-après;

Donc, les premiers articles sur lesquels je suis tombé renvoyaient sur la méthode Microsoft, via "POWERSHELL" suivante;
https://support.microsoft.com/fr-fr/...ou-remove-a-se

Pour faire simple, ont liste les serveur RDS de la ferme avec la commande
Puis on supprime le serveur souhaité avec la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Remove-RDServer -Server nom-fqdb-du-serveur -Role <Role-Name> -Force
Sauf que que ... si vous avez supprimé la VM du serveur et que celui-ci n'est pas joignable, vous n'obtiendrez qu'une autre erreur de la part de Powershell...
Bref, à ce stade je n'ai toujours pas avancé ...

Si l'histoire n'était pas plus compliquée, une simple restauration de la VM aurait permis de retrouver la main et de faire la suppression dans l'ordre.

Mais ce n'est pas le cas... Je me retrouve à essayer de scier la branche sur laquelle je suis assis ... alors qu'elle est déjà coupée

C'est là qu'une autre solution m'est apparue des abîmes de mes recherches ( en dépassant les 5 premières pages quoi ..) via mon moteur de recherche favoris en US (celui que nous utilisons quasiment tous pour les soucis techniques, sinon j'utilise https://www.lilo.org/ qui est basé dessus mais FR et plein de bonnes actions )

La solution : Supprimer directement le ou les serveurs dans la base SQL windows embarquée utilisée par le Broker.

Pour se connecter au moteur SQL embarqué rien de plus simple:

Télécharger et installer SQL Server Management Studio express (par exemple ici https://www.microsoft.com/fr-fr/down...s.aspx?id=8961) sur le serveur broker.
Attention - il faudra utiliser la session d'administrateur local !

C'est le dernier moment ou l'ont peut encore penser à réaliser un snapshot du serveur avant d'y faire une potentielle bêtise

Se connecter au serveur avec la ligne suivante;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
\\.\pipe\MICROSOFT\##WID\tsql\query
Ce qui donne :
Nom : ssms.JPG
Affichages : 132
Taille : 35,1 Ko

Se connecter sur la base RDCms et faire clic droit pour lancer une requête de recherche du top 1000 pour la table RDCms.RDS.Server, afin de récupérer la liste des serveurs du pool et leurs ID.
Nom : ssms2.JPG
Affichages : 75
Taille : 94,6 Ko

Je met le code directement si besoin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
/****** Script de la commande SelectTopNRows à partir de SSMS  ******/
SELECT TOP (1000) [Id]
      ,[Name]
      ,[OsVersion]
      ,[ClusterName]
  FROM [RDCms].[rds].[Server]

Reste à supprimer le ou les récalcitrants avec la commande ci-après en renseignant l'ID correspondant au serveur récupéré dans le tableau affiché par la commande précédente;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
delete from rds.Server where ID = ‘[IDduServerAsupp]’;
ET voila ! ou pas ...

En effet, le serveur peut avoir des références qui empêche la suppression.
Pas de panique! Il suffit de refaire la même chose sur la table de référence indiquée dans le message d'erreur et de la supprimer avant le serveur.

Dans mon cas, cela se trouvait dans la table RoleRdsh.
vous trouverez ci-après les lignes utilisées pour trouver et supprimer la référence qui m’empêchait de supprimer le serveur de la table "RDS.Server";

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
/****** Script de la commande SelectTopNRows à partir de SSMS  ******/
SELECT TOP (10) [Id]
      ,[RdcbConfigId]
      ,[PoolId]
  FROM [RDCms].[rds].[RoleRdsh]

/******  Suppression des lignes null pour les serveurs à supprimer *****/
  delete from rds.RoleRdsh where ServerId=[IDduServerAsupp]
! Attention ce n'est pas le même ID et pas la même table !


Vous pouvez recommencer la première manœuvre, la référence ne doit plus empêcher la suppression du serveur inexistant.
Mais surtout, l'accès à la console de gestion RDS sur le broker est revenue !

Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Viadeo Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Twitter Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Google Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Facebook Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Digg Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Delicious Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog MySpace Envoyer le billet « Blocage de la console de gestion RDS suite suppression de serveur dans la ferme » dans le blog Yahoo

Commentaires