Eine Lösung wäre, daß man einfach bei einem Disconnect automatisch die Terminalsession abmeldet. Das könnte man global in einem AD machen, aber auch lokal an jedem Terminalserver.
Alternativ könnte man ein Script schreiben, welches man per Scheduled Task einfach alle paar Minuten aufruft.
Dieses Script erkennt, welche Sitzungen gerade getrennt sind und schaut in diesen Sitzungen, ob darin der Prozess xy läuft. Anhand der Prozess-ID kann man diesen Prozess dann mit
pskill abschiessen.
Ein Beispiel Batch-Script:
Code:
@echo off
set lookfor=[B]wfshell.exe[/B]
for /f %%a in ('[COLOR="Blue"]query user[/COLOR] ^| find /i "Getr."') do (for /f "tokens=4,3 " %%i in ('[COLOR="Blue"]query process %%a[/COLOR] ^| find /i "%LOOKFOR%"') do [B]echo[/B] %%i)
Im Grunde ganz einfache Sache:
query user gibt eine aktuelle Liste der lokal angemeldeten Terminaluser aus. Diese Liste wird nach dem String "
Getr." gefiltert. Das ganze in einer FOR-DO-Schleife gepackt und somit hat man eine Liste der Usersessions mit Status "Getrennt".
Mit diesem Ergebnis ruft man
query process auf. Hier kann man wieder filtern und eine hübsche FOR-DO-Schleife rum.
Als Ergebnis hat man die PID's, welche man abschiessen möchte.
Du musst jetzt nur noch den Wert für
LOOKFOR berichtigen und das letzte "echo" in "pskill" ändern.
Aber nichts kaputt machen.