nuggler
Goto Top

In batch-script auf rdp-APP warten

Hallo Leute,
habe hier schon viel gelesen und viele Tipps bekommen,
großartiges Forum!

Ich brauche nun selbst mal einen Denkanstoß.

Mein Win Server 2k8 stellt eine Remote-App zur Verfügung.

Ich möchte mit einem Win7 Pro Client darauf zugreifen, und vorher ein VPN
starten, dass sich hinterher wieder beendet.

Ich rufe in einer bat-Datei erst eine VPN-Verbindung auf, möchte dann eine
Remote-Desktop App starten, und wenn der Nutzer die rdp-App wieder beendet soll
sich auch das VPN wieder schließen.

start "" "c:\Program Files\openvpn\bin\openvpn-gui.exe"  (plus Parameter)  
ping 192.168.2.10 -n 25>NUL 2>&1   (prüfen ob VPN verbunden)
start "" /Wait "rdp-app.rdp"   (wenn ping Ok, starte rdp)  
taskkill /IM openvpn-gui.exe /F /T    (wenn rdp beendet, kille vpn)

Folgendes passiert:
openvpn startet, und stellt die Verbindung her.
Irgendwann fällt der ping im VPN positiv aus und rdp wird gestartet.

--Wenn ich eine rdp-Verbindung aufrufe, öffnet sich diese, wenn ich sie wieder
schließe geht es weiter mit taskkill.

--Wenn ich eine rdp-App aufrufe, dann ruft er zwar die rdp-App auf, läuft aber
direkt im Script weiter und killt das VPN.

Wo ist der Unterschied zwischen dem Aufruf einer rdp-Verbindung und einer rdp-App?

Ich könnte eine Schleife einbauen, die regelmäßig prüft ob der Prozess mstsc.exe noch läuft, aber das ist doch irgendwie unschön, oder?

Vielleicht hat von euch jemand eine Idee warum bei einer Remote-Desktop App das Script weiterläuft, und bei einer Remote-Desktop Verbindung der task erst gekillt wird wenn der User die Verbindung geschlossen hat?

vielen Dank und Grüße,
Nuggler

Content-ID: 231698

Url: https://administrator.de/forum/in-batch-script-auf-rdp-app-warten-231698.html

Ausgedruckt am: 22.12.2024 um 23:12 Uhr

colinardo
colinardo 05.03.2014 aktualisiert um 10:59:54 Uhr
Goto Top
Hallo Nuggler, Willkommen im Forum!
Hast du es mal mit dem Aufruf der mstsc.exe probiert?
start "" /Wait mstsc "rdp-app.rdp"
Grüße Uwe
Nuggler
Nuggler 05.03.2014 um 11:03:48 Uhr
Goto Top
Hallo Uwe,
habe es gerade getestet:

bei Remote-Deskop Verbindung funktioniert es nach wie vor

bei Remote-Desktop App das gleiche Verhalten wie vorher,
er öffnet die App und killt sofort das VPN......
colinardo
Lösung colinardo 05.03.2014 aktualisiert um 12:46:29 Uhr
Goto Top
habe gerade mal verschiedene Dinge getestet und sehe hier nur die Möglichkeit einer Schleife die auf die mstsc Prozesse prüft ... Das Problem ist, das bei RemoteApps ein anderer Modus von mstsc genutzt wird (mstsc.exe -Embedding).

Grüße Uwe
Nuggler
Nuggler 05.03.2014 um 12:46:22 Uhr
Goto Top
Hallo Uwe,
und viel Dank für deine Bemühung!

Habe auch parallel noch paar Sachen getestet, und die Schleife geschrieben.

Man muss allerdings beim Aufruf der .bat darauf achten, dass man den mstsc Prozess
killt falls er schon läuft, sonst öffnet man einen zweiten und die Schleife bricht nicht ab.

Beendet man nun die remote-app dauert es ca 20 Sek bis das Script weiter läuft und
das vpn beendet.

Hier der (bei mir) funktionierende Code, falls noch jemand anders ein ähnliches Problem hat:

REM openvpn und mstsc killen, falls offen
taskkill /IM openvpn-gui.exe /F /T
taskkill /IM mstsc.exe /F /T

REM vpn mit entsprechenden Parametern starten
start "" "c:\Program Files\openvpn\bin\openvpn-gui.exe"  (plus Parameter)  

REM Server im VPN anpingen
ping 192.168.2.10 -n 16>NUL 2>&1

REM wenn Ping OK, dann rdp-app öffnen
start "" /Wait mstsc "rdp_app.rdp"   

REM checken ob mstsc läuft
:testeprozess
tasklist | find /i "mstsc.exe">nul && goto testeprozess  

REM wenn Prozess nicht mehr läuft kille VPN
taskkill /IM openvpn-gui.exe /F /T

Habe mir das teilweise aus verschiedenen Foren zusammenkopiert,
halte das nicht für die schönste Lösung aber es funktioniert.

Wir sind eine Freiwillige Feuerwehr, meine User sind keine Computer Experten,
und ich möchte denen nur soviele Clicks wie nur unbedingt notwendig
zumuten.

mit VPN etc können die meisten schon nichts anfangen, es ist aber in meinen
Augen notwendig.

Da es funktioniert markiere ich das Thema als gelöst.

Danke, Uwe, für deine Hilfe!

Gruß nuggler
colinardo
colinardo 05.03.2014 aktualisiert um 12:50:59 Uhr
Goto Top
dann mach noch zwischen Zeile 15 und 16 ein
timeout /t 5 /NOBREAK
damit das Ding nicht zu oft prüft und unnötig Prozessorpower verschwendet ... face-wink
Nuggler
Nuggler 05.03.2014 um 13:05:58 Uhr
Goto Top
Danke, gute Idee, vllt. nehme ich's noch etwas höher, denke 10 oder 30 reicht bei
einer Anwendung die im Durchschnitt 1 bis 2 Stunden offen sein wird face-wink


Schöne Woche noch!

Gruß nuggler