Zum Inhalt springen

RDP Benutzer um 23 Uhr abmelden

# 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.