Windows 2k3, RDP-Abmeldung via Script
Hallo, Community.
Es kommt bei uns häufiger vor, dass sich ein bestimmter User auf unserem TSE nicht ordnungsgemäß abmeldet und einfach nur die Verbindung trennt.
Dies führt zu keiner korrekten Durchführung der Datensicherung.
Dem Benutzer wurde schon mehrfach schriftlich, wie auch telefonisch, mitgeteilt wie er sich abzumelden hat. Allerdings bringt dies alles nichts - reine Gewohnheit, vergessen, oder einfach nicht zu verstehen!? Keine Ahnung.
Aus diesem Grund möchte ich nun ein Script, welches einen bestimmten Benutzer vom TSE abmeldet.
Hier im Forum bin ich auf folgenden Beitrag gestoßen:
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.
Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht wirklich hilfreich.
Hoffe Ihr kennt ein kleines Script, welches ich zu einer bestimmten Uhrzeit via Task ausführen lassen kann - welches dann einen bestimmten Nutzer (anhand des Benutzernamens) abmeldet.
Vielen Dank und
mit freundlichen Grüßen
Euer hoerncheN
NACHTRAG 11:23 Uhr
Die Konfiguration der Terminaldienste, getrennte Verbindungen nach einer gewissen Zeit selbstständig zu beenden ist nicht gewünscht.
Es kommt bei uns häufiger vor, dass sich ein bestimmter User auf unserem TSE nicht ordnungsgemäß abmeldet und einfach nur die Verbindung trennt.
Dies führt zu keiner korrekten Durchführung der Datensicherung.
Dem Benutzer wurde schon mehrfach schriftlich, wie auch telefonisch, mitgeteilt wie er sich abzumelden hat. Allerdings bringt dies alles nichts - reine Gewohnheit, vergessen, oder einfach nicht zu verstehen!? Keine Ahnung.
Aus diesem Grund möchte ich nun ein Script, welches einen bestimmten Benutzer vom TSE abmeldet.
Hier im Forum bin ich auf folgenden Beitrag gestoßen:
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.
Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht wirklich hilfreich.
Hoffe Ihr kennt ein kleines Script, welches ich zu einer bestimmten Uhrzeit via Task ausführen lassen kann - welches dann einen bestimmten Nutzer (anhand des Benutzernamens) abmeldet.
Vielen Dank und
mit freundlichen Grüßen
Euer hoerncheN
NACHTRAG 11:23 Uhr
Die Konfiguration der Terminaldienste, getrennte Verbindungen nach einer gewissen Zeit selbstständig zu beenden ist nicht gewünscht.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189156
Url: https://administrator.de/contentid/189156
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
25 Kommentare
Neuester Kommentar
Zitat von @d4shoerncheN:
Hier im Forum bin ich auf folgenden Beitrag gestoßen:
> Remote Desktop per Batch trennen?
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.
Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht
wirklich hilfreich.
> http://support.microsoft.com/kb/321705/de
Hier im Forum bin ich auf folgenden Beitrag gestoßen:
> Remote Desktop per Batch trennen?
Allerdings würde ich das Ganze gerne ohne irgendwelche Zusatzsoftware (in dem Fall xCMD.exe) gelöst bekommen.
Im Technet von Microsoft habe ich etwas gefunden, was sich allerdings auf die Session-ID's bezieht. Auch hier leider nicht
wirklich hilfreich.
> http://support.microsoft.com/kb/321705/de
Halli hallo hallöle,
ich bin jetzt nicht der Skriptspezi, aber Du hast durch Deine zwei Links gute Ansätze gefunden. Nimm aus dem ersten Link das Skript und ersetze xcmd.exe durch tdiscon. Man müßte das Skript in sofern anpassen, daß anhand der Session ID die benutzerkennung ermittelt wird und dann die Session des Benutzers getrennt wird.
Gruss Penny.
Hallo d4shoerncheN und Penny.Cilin!
Vielleicht kann ich (auf Basis von Query Session - ich kann das leider nicht selbst testen) mit folgendem Oneliner-Batch (zum direkten Testen in CMD jeweils nur %i anstatt %%i) etwas assistieren:
Grüße
bastla
Vielleicht kann ich (auf Basis von Query Session - ich kann das leider nicht selbst testen) mit folgendem Oneliner-Batch (zum direkten Testen in CMD jeweils nur %i anstatt %%i) etwas assistieren:
for /f "tokens=3" %%i in ('query session^|findstr /i "Benutzername"') do tsdiscon %%i
bastla
Hallo d4shoerncheN!
Der Fehlermeldung entsprechend passt die Tokennummer (4) nicht - führe zu Sicherheit bitte
aus und poste den Inhalt der "Sessions.txt" unter Verwendung von "<code>"- und "</code>"-Tags.
[Edit] Da ja auch der Name der Session verwendbar sein sollte, kannst Du auch noch
versuchen (wäre vermutlich auch sicherer) ...
[/Edit]
Grüße
bastla
Der Fehlermeldung entsprechend passt die Tokennummer (4) nicht - führe zu Sicherheit bitte
query session>Sessions.txt
[Edit] Da ja auch der Name der Session verwendbar sein sollte, kannst Du auch noch
for /f %i in ('query session^|findstr /i "USER1"') do tsdiscon %i
[/Edit]
Grüße
bastla
Hallo d4shoerncheN!
Wie schon vermutet, kann Token 4 natürlich nicht funktionieren - mit 3 sollte es gehen (wobei ich aber trotzdem den Sitzungsnamen bevorzugen würde) ...
[Edit] Blödsinn - 4 hatte ich ja ohnehin nicht verwendet - trotzdem sollte es mit 3 funktionieren [/Edit]
ist strange, da ja nach "USER1" gefiltert wird - für
sollte das Ergebnis eigentlich so aussehen:
und daraus müsste dann
resultieren ...
Grüße
bastla
Wie schon vermutet, kann Token 4 natürlich nicht funktionieren - mit 3 sollte es gehen (wobei ich aber trotzdem den Sitzungsnamen bevorzugen würde) ...
[Edit] Blödsinn - 4 hatte ich ja ohnehin nicht verwendet - trotzdem sollte es mit 3 funktionieren [/Edit]
Sitzungsname USER4 nicht gefunden
query session|findstr /i "USER1"
rdp-tcp#191 USER1 5 Aktiv rdpwd
tsdiscon rdp-tcp#191
Grüße
bastla
Hallo d4shoerncheN!
Mit
- kannst Du auch gleich so testen - dürftest Du eher keinen Erfolg haben - das Beispiel auf der MS-Seite (und ich kann, wie gesagt, leider nicht selbst testen) ist in dieser Hinsicht suboptimal, da Die Sitzungsnummer und die ID jeweils 5 ist ...
[Edit] Da es aber mit "
Grüße
bastla
Mit
tsdiscon rdp-tcp#14
[Edit] Da es aber mit "
tsdiscon
" ja eigentlich um das Trennen von Sessions geht, sind wir vielleicht ohnehin auf dem falschen Dampfer ... [/Edit]Grüße
bastla
... und ich habe auf die Schnelle noch einen Thread "Script to log off DISCONNECT terminal services connections" gefunden (komme aber gerade nicht dazu, mir das näher anzusehen) ...
Grüße
bastla
Grüße
bastla
Ja, musst Du
@bastla:
Könnte man dies evtl. so erweitern, daß auch auf einem englischen Sysstem läuft.
D.h. Abfrage der Sprache und dann den Befehle zum disconnecten?
Gruss Penny.
@bastla:
Könnte man dies evtl. so erweitern, daß auch auf einem englischen Sysstem läuft.
D.h. Abfrage der Sprache und dann den Befehle zum disconnecten?
Gruss Penny.
Hallo Penny.Cilin!
Noch eine Anmerkung: Damit es zB nur den "USER1" und nicht auch einen "USER12" erwischt, könnte noch das Leerzeichen vor und nach dem Usernamen mit geprüft werden:
Grüße
bastla
Abfrage der Sprache und dann den Befehle zum disconnecten?
... oder bilingual anlegen:for /f "tokens=2" %i in ('query session^|findstr /i "USER1"^|findstr /i "getr disc"') do rwinsta %i
for /f "tokens=2" %i in ('query session^|findstr /ic:" USER1 "^|findstr /i "getr disc"') do rwinsta %i
bastla