On a vu dans un pool, il n'etait pas possible de gérer via la console le temps de fermeture d'une session après deconnection. C'est à dire que si les utilisateurs quitte leurs sessions TS sans fermer la session, la machine virtuelle reste verrouille par l'utilisateur.

Pour evitier d'avoir des machines verrouillé, vous avez deux solutions :

  • Par GPO mais que je ne trouve pas très fléxible car si vous devez gérer différent temps de fermeture de session en fonction des collections, vous devez créer une GPO pour chaque collections et les classer dans deux OU différente.
  • Sinon par script. Vous avez un nouveau module nommé RemoteDesktop qui propose enormement de commande et avec la nouvelle console ISE, c'est que du bonneur.

Dans mon script je vais forcer la déconnection des utilisateurs en status déconnecté lorsque le temps d'inactivité est supérieur à 15 minutes de la date d’exécution du script. Dans le script, je ne spécifie pas de Collection mais vous pouvez l'indiquer dans la seconde ligne : RemoteDesktop

import-module RemoteDesktop
$Disconnect = Get-RDUserSession | Where-Object {$_.DisconnectTime -ne $null}
$Date = [datetime]::ParseExact("{0:dd/MM/yyyy HH:mm:ss}" -f (get-date), "dd/MM/yyyy HH:mm:ss", $null)
$DisconnectTime = 15
if (@($Disconnect).Count -ne 0)
{
foreach ($DisconnectUser in $Disconnect)
{
if ($Date -gt $DisconnectUser.disconnecttime.AddMinutes($DisconnectTime))
{
$DisconnectUser | Invoke-RDUserLogoff -Force
}
}
}

A bientôt,
Romain