El script de PowerShell disponible en esta página se usa para reiniciar un servidor host de sesión de escritorio remoto de una granja de servidores RDS 2012R2 / 2016/2019.
Usar:
- Modifique las dos variables $ServerBroker y $ServerHost
- Cree una tarea programada ejecutando el script en el servidor Host de sesión de escritorio remoto que debe reiniciarse.
El uso del script evita terminar con las carpetas xxxxx.BACKUP-Y en la carpeta C:\Users en el servidor.
Durante un reinicio, si los UPD aún están montados, se crea una carpeta temporal para cada sesión que aún esté abierta.
#
# RDR-IT
# Get close and active sessions of a desktop session host server remotely and reboot the server
# Compatible with RDS farms 2012R2 / 2016/2019
#
$ServerBroker = "Broker.dom.local"
$ServerHost = "RDH-01.dom.local"
# Get sessions from broker
$Sessions = Get-RDUserSession -ConnectionBroker $ServerBroker
# Browse all open sessions and close sessions on the session host server configured in parameter
foreach($Session in $Sessions){
#Write Event
Write-EventLog -LogName "System" -Source "EventLog" -EventId 6013 -EntryType Information -Message "$Session.UserName close session"
# Write-Host $Session.UnifiedSessionID -ForegroundColor Red
Invoke-RDUserLogoff -HostServer $ServerHost -UnifiedSessionID $Session.UnifiedSessionID -Force
}
Restart-Computer