Hallo allerseits,
ich stehe mal wieder vor einem Phänomen, welches ich mir nicht erklären kann. Es geht um ein kleines Automatisierungsscript welches, bei einem vorhandenen VPN Zertifikat eine Verbindung hestellt und dann eine RDP Verbindung. Beim Abbau der RDP Verbindung wird die VPN Verbindung wieder gekappt. Dieses geschieht ganz simpel über eine Endlos Schleife die checkt ob das RDP Programm geöffnet ist. Nun funktioniert eigentlich super, aber nur wenn ich die Terminal Session unter 20 Minuten halte, sobald die Session über 20 Minuten ist, habe das jetzt oft genug getestet, kappt er die VPN Verbindung nicht mehr. Auch wenn dies jetzt keiner ausprobieren kann, ohne entsprechende VPN Zertifikat, vielleicht fällt ja doch kemanden etwas schlaues dazu ein;)
Das Script sieht so aus:
#include <Constants.au3>
TraySetIcon("certmgr.dll",-13)
$g_szVersion = "My Script 1.1"
If WinExists($g_szVersion) Then Exit ; It's already running
AutoItWinSetTitle($g_szVersion)
;Cisco Pfad
$ProgramFileDir = "c:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\"
;ciscolauner quit wenn läuft
$prg = "vpnui.exe"
If ProcessExists($prg) Then ; Check if the Notepad process is running.
ProcessClose($prg)
Else
EndIf
$list = ProcessList("vpncli.exe")
for $i = 1 to $list[0][0]
ProcessClose( $list[1][1] )
Next
;DOMAINCHECK; wenn Domäne kein VPN
global $var = Ping("192.168.100.66")
If @error = 0 Then
$vpn = "0" ;kein VPN nötig
Else
$vpn = "1" ;VPN nötig
EndIf
;Connect any already established session (Ausserhalb)
IF $vpn = "1" Then
SplashTextOn('', 'VPN und Terminal- Verbindung wird hergestellt', 300, 60, -1, -1, $DLG_NOTITLE)
Sleep(5000)
SplashOff()
$cmd = Run($ProgramFileDir & "vpncli.exe connect 140.66.124.23:443", @WindowsDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Wait for the Y/N prompt to appear
StdinWrite($CMD, "y")
StdinWrite($CMD)
SplashTextOn('', '"VPN und Terminal- Verbindung wurde hergestellt"', 300, 60, -1, -1, $DLG_NOTITLE)
Sleep(1000)
SplashOff()
ELSE
$cmd = Run("mstsc /v:la-fire02", @WindowsDir, @SW_HIDE)
EXIT
ENDIF
;Verbinden mit Terminal
sleep(10000)
$cmd = Run("mstsc /v:10.44.244.11", @WindowsDir, @SW_SHOW)
;Programm so lange offen halten bis
WHILE 1
IF ProcessExists ( "mstsc.exe" ) = 0 then
SplashTextOn('', 'Abbau der VPN Verbindung', 300, 50, -1, -1, $DLG_NOTITLE)
Sleep(3000)
SplashOff()
$cmd = RunWait($ProgramFileDir & "vpncli.exe disconnect", @WindowsDir, @SW_HIDE)
EXITLOOP
$cmd = RunWait($ProgramFileDir & "vpncli.exe disconnect", @WindowsDir, @SW_HIDE)
EXIT
ENDIF
WEND
splashTextOn('', 'Ende der TerminalSession', 300, 50, -1, -1, $DLG_NOTITLE)
Sleep(3000)
SplashOff()
EXIT
Alles anzeigen
lg und schöne Woche noch