Forcer la déconnexion des sessions Disconnected sur XenApp / XenDesktop

Lorsque vous ouvrez votre console Citrix Studio ou Director, vous remarquez qu’une session utilisateur peut avoir différents états. Elles peuvent en effet être Active, Connected ou encore Disconnected. C’est ce dernier cas qui m’intéresse. Dans certains cas, les utilisateurs ne se déconnectent pas toujours correctement via un LogOff au sein de l’infrastructure. Il est alors possible de forcer leur déconnexion avec le script PowerShell suivant :

# Calling the Citrix SDK CmdLets
Add-PSSnapin Citrix*
# We get ALL the Citrix sessions actived
$all_sessions = Get-BrokerSession
# For each session
foreach ($session in $all_sessions)
{
# If the session is in "Disconnected" status
if ($session.SessionState -eq "Disconnected")
{
# We're processing a true Logoff
Stop-BrokerSession $session
# Write-Host $timestamp $session.UserName "has been logged off on" $session.HostedMachineName
}
}

Dans cet exemple, je liste d’abord l’ensemble des sessions actuellement connectées puis pour chaque session qui se trouve dans un état “Disconnected” je force un LogOff de la session avec la CmdLet Stop-BrokerSession. Il ne reste alors plus qu’à planifier l’exécution de ce script périodiquement afin de faire le ménage dans les différentes sessions.

Notez qu’il est également possible de réaliser la même chose via les stratégies Citrix suivantes :

  • Disconnected session timer
  • Disconnected session timer interval

Plus d’informations sur la planification d’un script PowerShell sur l’article suivant via le Task Scheduler de Windows.

PartagezShare on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone