Batch User mittels Batch vom Terminalserver abmelden.

n4p_4_live

Newbie
Registriert
Sep. 2017
Beiträge
3
Hallo.

Ich möchte mittels einer Batch einen bestimmten Benutzer automatisch vom Terminal Server abmelden bzw. reseten.
Mit den Befehl „qwinsta“ werden mir alle Benutzer die am Terminalserver angemeldet sind angezeigt.

C:\>qwinsta /SERVER:TRAMINALSERVER
SITZUNGSNAME___BENUTZERNAME___ID
rdp-tcp#61_______user103_________2
rdp-tcp#60_______user102_________3
rdp-tcp#57_______user106_________4


Mit den Befehl „RWinsta“ kann die Sitzung Reseten aber leider nur mittels der SITZUNGSNAME oder ID und nicht mit den BENUTZERNAME.

Die SITZUNGSNAME oder ID ist jedes Mal eine andere wen sich der Benutzer am Terminalserver anmeldet.

Ich bräuchte also eine Batch Datei die mit nach dem „qwinsta“ Befehl nachsieht welchen ID der User hat. (z.B.: BENUTZERNAME = user103 ID=2 )und dann müsste mit die Batch die richtige ID in den „RWinsta“ Befehl eintragen und ausführen (C:\>rwinsta /Server:Terminalserver 2)

Vielleicht hat hier einer eine Idee wie man das umsetzen könnte.

DANKE
 
Zuletzt bearbeitet:
Hi,

Code:
set USERNAME=whatever
for /f "tokens=3" %i in ('qwinsta /SERVER:SERVER ^| findstr %USERNAME%') do echo %i

Grüsse nach Linz,
Andi
 
Hey Andy

Danke für die rasche antwort.
Ich hab den Code mal mit meinen Daten ergäntz und getestet.

Code:
set USERNAME=user007
for /f "tokens=3" %i in ('qwinsta /SERVER:termsrv ^| findstr %USERNAME%') do echo %i

Leider bekomme ich folgende rückmeldung.

Code:
C:\Users\user007\Desktop>x.bat
C:\Users\user007\Desktop>set USERNAME=user007
"termsrv" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
C:\Users\user007\Desktop>for /f "tokens=3" termsrv ^| findstr user007') do echo i

Ich hab es mal mit der IP Adresse statt den DNS Namen des Servers versucht.
Leider mit den selben ergebnis.
 
Hallo,

Wenn du es nicht direkt auf der Commandline ausführst sondern in einer Datei abspeicherst brauchen wir eine Änderung.
Probier mal so:

Code:
@echo off
set USERNAME=user007
for /f "tokens=3" %%i in ('qwinsta /SERVER:termsrv ^| findstr %USERNAME%') do (
	echo rwinsta /Server:termsrv %%i
)

Sollte das gehen, nimmst du das "echo" in Zeile 4 raus. Dann wird der Befehl auch tatsächlich durchgeführt.

Gruss,
Andi
 
Zurück
Oben