Administratoren von Windows-Terminalservern dürften das Problem kennen wenn man RemoteApps verwendet und trotz des Umstands, das die eigentliche Remote-Anwendung beendet wurde, die Sitzung aktiv bleibt.

Grund dafür sind in der Regel weitere Prozesse die im Hintergrund von der “Haupt-Anwendung” gestartet werden und z.B. im Infobereich angezeigt werden. Mitunter gibt es aber auch gar keinen sichtbaren Grund. Abhilfe schafft ein kleines Tool, das die Remote-Anwendung startet und nach dem Beenden von Dieser für eine Abmeldung vom Terminalserver sorgt.

Download: RemoteApp-Helper.zip (beinhaltet Exe, Ini und Quellcode)

Das Tool an sich sind nur ein paar Zeilen in AutoIt, die als Exe-Datei kompiliert wurden. Mit einer Ini-Datei wird die zu startende Anwendung, die eigentliche RemoteApp festgelegt. Über den RemoteApp-Manager wird wiederum der RemoteApp-Helper “freigegeben” und verteilt.

RemoteApp-Helper.ini

[RemoteApp]
Path=C:\Windows\System32
Exe=Notepad.exe

Quellcode

; AutoIt Tray icon ausblenden

 #NoTrayIcon

; Ini-Datei auslesen

 $Path = IniRead ("RemoteApp-Helper.ini", "RemoteApp", "Path", "Error: Path")
 $Exe = IniRead ("RemoteApp-Helper.ini", "RemoteApp", "Exe", "Error: Exe")
 
; Fehlerprüfung

 If $Path = "Error: Path" Then
	MsgBox (16, "RemoteApp-Helper - Fehler", "Pfad in der Ini-Datei nicht lesbar!")
	Exit
 EndIf
 
 If $Exe = "Error: Exe" Then
	MsgBox (16, "RemoteApp-Helper - Fehler", "Exe in der Ini-Datei nicht lesbar!")
	Exit
 EndIf

; RemoteApp starten

 RunWait ($Path & "\" & $Exe, $Path)

; Abmelden, sobald die RemoteApp beendet wurde

 Run (@SystemDir & "\logoff.exe")

Persönliche Bemerkung

Im Rahmen der Einführung von RemoteApp in Verbindung mit DATEV zur Realisierung des Mandantenzugriffs bin ich (mal wieder) über dieses Problem gestolpert. Neben der aktiv bleibenden Sitzung war umso unschöner, das beim Trennen der VPN-Verbindung bei den Mandanten eine Fehlermeldung von der Remotedesktopverbindung erschien.

Mit diesen wenigen Zeilen in AutoIt und ein paar Tests war das Problem behoben.