O script PowerShell disponível nesta página permite reiniciar um servidor de sessões de ambiente de trabalho remoto de um conjunto de servidores RDS 2012R2/2016/2019.
Utilização:
- Altere as duas variáveis
$ServerBrokere$ServerHost - Crie uma tarefa agendada executando o script no servidor de sessão de ambiente de trabalho remoto que deve ser reiniciado.
A utilização do script evita a criação de pastas xxxxx.BACKUP-Y na pasta C:\Users do servidor.
Durante um reinício, se ainda houver UPDs montados, é criada uma pasta temporária para cada sessão ainda aberta.
#
# 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