Fermer les sessions déconnectées sur une ribambelle de serveurs
Je ne vous ai pas dit… mais je travaille dans une formidable équipe de hot liners.
J’aurai des tas choses à vous raconter… mais là n’est pas le sujet.
La problématique du jour est: Comment fermer les sessions déconnectées sur un grand nombre de serveurs?
Alors, c’est quoi une session déconnectée? Il s’agit d’un utilisateur qui confond FERMER LA SESSION ou ARRÊTER avec le fait d’éteindre à la sauvage son poste client, ou fermer la fenêtre de la session RDP.
Bon, okay, il y a aussi les sessions fantômes qui se sont mal fermées.
Du coup, sur le serveur, vous avez X utilisateurs connectés, Y déconnectés… et vous ne pouvez vous reconnecter à cause de ces fameuses sessions.
Solution 1: Rechercher serveur par serveur les sessions ouvertes et les fermer une par une.
Donc soit sur le serveur en administrateur, soir depuis un PC sur le domaine en administrateur (/server:NomDuServeur si vous êtes sur un autre poste)
qwinsta /server:NomDuServeur
Cela va vous retourner les sessions avec leurs états et il suffit de fermer celles qui sont Déco (ou Disc en anglais)
Alors là… sessions après sessions…
rwinsta /server:NonDuServeur IDSession
Alors… c’est beau, c’est bien… mais 500 utilisateurs sur 35 serveurs…
Solutions 2: Le script de pépère (depuis un OS en français, depuis un OS en anglais remplacer findstr D‚co par findstr Disc )
@echo off
SETLOCAL
SET « servers=srv-1 srv-2 srv-3 »
FOR %%s IN (%servers%) DO (
@echo %%s
FOR /f « tokens=2 » %%a IN (‘ »Quser /server:%%s | findstr D‚co »‘) DO (
@echo %%a
rwinsta /server:%%s %%a
)
)
Résultat de ce Batch? Il fermera toutes les sessions déconnectées sur la liste de serveurs définit.