# Terminalserver abmelden mit Meldung und Verzögerung
$AdminUsername = "Administrator"
$ExcludedUsers = @('Administrator') # Benutzer, die ausgeschlossen werden sollen
$MessageTitle = "Benachrichtigung"
$MessageText = "Sie werden in 2 Minuten abgemeldet."
# Alle aktiven Sitzungen abrufen
$ActiveSessions = quser /server:localhost
# Sitzungen der auszuschließenden Benutzer entfernen
$ActiveSessions = $ActiveSessions | Where-Object { $_ -notmatch $ExcludedUsers }
# Sitzungen für jeden Benutzer abmelden
foreach ($Session in $ActiveSessions) {
$Username = ($Session -split '\s+')[0]
$SessionId = ($Session -split '\s+')[2]
# Meldung an den Benutzer senden
msg $SessionId /server:<Servername> $MessageText $MessageTitle
# Verzögerung von 2 Minuten
Start-Sleep -Seconds 120
# Benutzer abmelden
logoff $SessionId /server:localhost
Write-Host "Benutzer $Username wurde abgemeldet."
}
Ab und zu ist es Notwending das User via Rdp abgemeldet werden müssen, dies kann man via GPO machen, aber hier kann man nur eine Timeout Zeit einstellen. Was nicht so sinnvoll ist.