Möchte man Terminalserver User nach einer bestimmten Uhrzeit trennen, ist dies in den Terminalserver Einstellungen kein Problem, solange dies alle Benutzer betrifft.

Nun hatte ich die Anforderung dies auf nur einen Benutzer zu beschränken. Mit Hilfe von Powershell und qwinsta (= Query WINdows STAtion) konnte ich den betroffenden Benutzer filtern und die Terminalserver Session abmelden.

Dabei spielt es keine Rolle, ob der Benutzer noch aktiv ist oder im Status “getrennt” steht.

Wichtig: Zurzeit ist das Skript für einen deutschen Terminalserver ausgerichtet, lässt sich aber leicht bei “Select-Object benutzername | %{$_.Benutzername}” anpassen!

Hier das kleine Script:

//Benutzername anpassen
$shortusername = "username"
function isNumeric ($x) {
try {
0 + $x | Out-Null
return $true
} catch {
return $false
}
}
$q = (qwinsta | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)
$id = $q -match $shortusername | Select-Object benutzername | %{$_.Benutzername}
<p>if(isNumeric($id))
{
$id
}else{
$id = $q -match $shortusername | Select-Object ID | %{$_.ID}
}
logoff $id

Der Benutzername muss in dem Script hinterlegt werden!

Nach der Hinterlegung im Task Scheduler wird der Benutzer nun täglich um 21 Uhr abgemeldet, ohne das andere User betroffen sind!


Wenn dir dieser Artikel gefallen hat, kannst du ihn mit einem Klick auf die folgenden Buttons weiterempfehlen. Möchtest du in Zukunft keine neuen Beiträge mehr verpassen? Dann abonniere doch den RSS Feed dieses Blogs. Vielen Dank!

1 Kommentar für “[TerminalServer/PS]Einzelnen Benutzer zur bestimmten Uhrzeit abmelden”

  1. Skript funktioniert so nicht bei mir (Win Server 2012)

    16.03.2016 um 15:32


Kommentar abgeben

Current month ye@r day *