Dépanner un serveur RDS avec des sessions fantômes

un administrateur système effrayé par les fantômes de ses serveurs

Dépanner un serveur RDS avec des sessions fantômes

Enfin une solution à une galère qui dure depuis plusieurs années, et qui a déjà touché plus d’un SysAdmin… Les sessions fantômes sur un serveur RDS (Remote Desktop Services):

Vous savez? Ces sessions qui apparaissent sans nom d’utilisateur, et que vous ne pouvez pas fermer…

Rien de traumatisant me direz-vous? Mais le pire, c’est le phénomène qui les accompagne : une impossibilité pour les nouveaux utilisateurs de se connecter – ces derniers restent bloqués sur “Application de la stratégie Group Policy Registry…” :

Screenshot of Windows operating system displaying the message 'Applying Group Policy Registry policy'.

Généralement, lors d’un tel problème, on essaye de fermer les sessions fantômes (celles qui apparaissent sans nom d’utilisateur). Pourquoi ? Tout simplement car on a l’impression qu’une session non démarrée complètement bloque tout le monde.

Et c’est généralement vrai lorsqu’un utilisateur qui souhaite accéder au serveur en RDP se retrouve avec une erreur “La tâche que vous tentez d’effectuer ne peut pas être terminée, car les services Bureau à distance sont actuellement occupés”.

L’origine du problème et la solution

L’origine de notre problème, c’est une demande au niveau du serveur RDS qui part dans une boucle infinie. Autant dire qu’il ne sert à rien d’attendre…

Pour trouver le coupable, il va falloir savoir quel service bloque le moteur de gestion des stratégies de groupe. Pour cela, on identifie d’abord le PID du svchost concerné :

tasklist /svc | findstr gpsvc
svchost.exe                   1856 gpsvc

Maintenant, un petit tour dans le gestionnaire des tâches, on sélectionne le svchost.exe qui porte le PID 1856 et on demande la chaîne d’attente :


Une fois obtenue, on voit dans notre cas que c’est le spouleur d’impression qui nous bloque :

Il ne nous reste plus qu’à redémarrer le service spouler :

net stop spooler && net start spooler

Et si cela ne fonctionne pas (ce qui est plus que probable, vu qu’il ne répond pas au service GPSvc), on le tue et on le relance:

taskkill /im spoolsv.exe /f
net stop spooler
net start spooler

Normalement, à ce stade, le serveur va se mettre à répondre de manière très lente : c’est normal, car il débloque les fermetures et ouvertures de session qui étaient en attente. Puis, tout revient à la normale (sans devoir faire un redémarrage forcé du serveur).

Conclusion

Il existe plusieurs raisons d’un blocage des ouvertures de session dans un environnement RDS. En général c’est le spouler d’impression qui bloque à cause d’une redirection d’imprimante locale qui a mis trop de temps à répondre.

Vous pouvez donc redémarrer le spouler (en mode forcé si nécessaire) dans un premier temps. Si cela ne suffit par, analyser la chaîne d’attente du service GPSvc vous indiquera quel est le coupable !

Et voilà, c’est tout pour aujourd’hui!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.