Automatischer Start einer VPN Verbindung
Hallo zusammen,
ich benötige Hilfe..
Ich habe einen gateprotect VPN Client, dieser soll immer Starten wenn ich nicht im Netzwerk bin-
Hierzu habe ich einen Ping auf 192.168.1.2 (Server) wird der nicht gefunden soll das Programm starten und minimiert werden (als Tray).
Im Autostart Ordner habe ich eine Verknüpfung zur Datei: VPN-START-1.vbs
VPN-START-2.bat enthält:
MS-BEK1.gpcs ist die Zertifikatsdatei die bei Start den VPN Client.exe öffnet und automatisch die Verbindung ohne Knopfdruck herstellt.
Wie kann ich das optimieren bzw sagen das er das ganze minimiert / versteckt startet in der Batchdatei.
Vielen Dank im Voraus
ich benötige Hilfe..
Ich habe einen gateprotect VPN Client, dieser soll immer Starten wenn ich nicht im Netzwerk bin-
Hierzu habe ich einen Ping auf 192.168.1.2 (Server) wird der nicht gefunden soll das Programm starten und minimiert werden (als Tray).
Im Autostart Ordner habe ich eine Verknüpfung zur Datei: VPN-START-1.vbs
Set WshShell = CreateObject("WScript.Shell")
cmds=WshShell.RUN("VPN-START-2.bat", 0, False)
Set WshShell = Nothing
VPN-START-2.bat enthält:
@echo off
ping -n 1 192.168.1.2
if errorlevel 1 goto Programm
if errorlevel 0 goto ENDE
:Programm
MS-BEK1.gpcs
:ENDE
MS-BEK1.gpcs ist die Zertifikatsdatei die bei Start den VPN Client.exe öffnet und automatisch die Verbindung ohne Knopfdruck herstellt.
Wie kann ich das optimieren bzw sagen das er das ganze minimiert / versteckt startet in der Batchdatei.
Vielen Dank im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 336832
Url: https://administrator.de/forum/automatischer-start-einer-vpn-verbindung-336832.html
Ausgedruckt am: 13.05.2025 um 21:05 Uhr
8 Kommentare
Neuester Kommentar
Hallo BKrieg,
Minimiert kannst Du so starten:
Schreibt statt
Das Arbeitsverzeichnis (hinter /d) und den Namen der EXE müsstest Du noch anpassen. "VPN" ist hier nur der Fenstertitel und der ist wahlfrei.
Ohne Deinen VPN-Client zu kennen, vermute ich, dass er auch gestartet werden kann, wenn Du ihn direkt aufrufst und die gpcs-Datei als Parameter übergibst. Gegebenenfalls müsstest Du die genaue Syntax dafür nachsehen.
Ob das dann im Tray minimiert, hängt von der EXE ab.
Alternativ kann man eine Verknüpfung erstellen und in deren Eigenschaften "Ausführen: Minimiert" einstellen.
Wenn man dann statt des Programms/Batches die Verknüpfung startet, startet das verknüpfte Objekt minimiert.
Verknüpfungen erhalten generell die Extension "lnk", die im Explorer aber nicht angezeit wird.
Im Zweifelsfall ein
Ohne Netzwerk auch kein VPN.
Du meinst also wenn Du in einem anderen Netzwerk bist, als das, im dem der Server (192.168.1.2) sich befindet.
Der Ping auf den Server würde auch scheitern, wenn Du in keinem Netzwerk bist, aber das VPN dann ebenfalls.
Du könntest statt des pings die Ausgabe von
Ohne Netzwerk wird für den/die Adapter keine IP ausgegeben und in "fremden" Netzwerken eine (wahscheinlich) andere IP als im eigenen Netzwerk. Hast Du im eigenen Netzwerk eine feste IP oder bekommst Du eine per DHCP?
Anders gefragt, was spuckt denn ipconfig in der einen und in der anderen Situation aus?
Dein Skript wird nur einmal beim Systemstart ausgeführt.
Reicht Dir das oder sollte es bei jedem Netzwerkwechsel automatisch anspringen und prüfen, ob eine VPN-Verbindung aufgebaut werden sollte?
Gruß Frank
Nachtrag:
Was das minimiert angeht, war Kraemer schneller als ich.
Ich sollte mir angewöhnen einen Beitrag nochmal neuzuladen, bevor ich bei meiner Antwort auf senden klicke.
Zitat von @BKrieg:
Wie kann ich das optimieren bzw sagen das er das ganze minimiert / versteckt startet in der Batchdatei.
Wie Du "versteckt" startest weißt Du ja schon (siehe VPN-START-1.vbs).Wie kann ich das optimieren bzw sagen das er das ganze minimiert / versteckt startet in der Batchdatei.
Minimiert kannst Du so starten:
Schreibt statt
MS-BEK1.gpcs
das hier:start /min "VPN" /d "C:\Program Files (x86)\VPN" "VPN Client.exe" MS-BEK1.gpcs
Das Arbeitsverzeichnis (hinter /d) und den Namen der EXE müsstest Du noch anpassen. "VPN" ist hier nur der Fenstertitel und der ist wahlfrei.
Ohne Deinen VPN-Client zu kennen, vermute ich, dass er auch gestartet werden kann, wenn Du ihn direkt aufrufst und die gpcs-Datei als Parameter übergibst. Gegebenenfalls müsstest Du die genaue Syntax dafür nachsehen.
Ob das dann im Tray minimiert, hängt von der EXE ab.
start /min
minimiert erstmal nur in der Taskleiste.Alternativ kann man eine Verknüpfung erstellen und in deren Eigenschaften "Ausführen: Minimiert" einstellen.
Wenn man dann statt des Programms/Batches die Verknüpfung startet, startet das verknüpfte Objekt minimiert.
start "meine Verknüpfung.lnk"
Verknüpfungen erhalten generell die Extension "lnk", die im Explorer aber nicht angezeit wird.
Im Zweifelsfall ein
dir
oder dir /a-d /b *.lnk
ausführen, um dem korrekten, vollständigen Namen der Verknüpfung zu sehen.Ohne Netzwerk auch kein VPN.
Du meinst also wenn Du in einem anderen Netzwerk bist, als das, im dem der Server (192.168.1.2) sich befindet.
Der Ping auf den Server würde auch scheitern, wenn Du in keinem Netzwerk bist, aber das VPN dann ebenfalls.
Du könntest statt des pings die Ausgabe von
ipconfig
auswerten.Ohne Netzwerk wird für den/die Adapter keine IP ausgegeben und in "fremden" Netzwerken eine (wahscheinlich) andere IP als im eigenen Netzwerk. Hast Du im eigenen Netzwerk eine feste IP oder bekommst Du eine per DHCP?
Anders gefragt, was spuckt denn ipconfig in der einen und in der anderen Situation aus?
Dein Skript wird nur einmal beim Systemstart ausgeführt.
Reicht Dir das oder sollte es bei jedem Netzwerkwechsel automatisch anspringen und prüfen, ob eine VPN-Verbindung aufgebaut werden sollte?
Gruß Frank
Nachtrag:
Was das minimiert angeht, war Kraemer schneller als ich.
Ich sollte mir angewöhnen einen Beitrag nochmal neuzuladen, bevor ich bei meiner Antwort auf senden klicke.

Den Errorlevel von ping kann man nicht auswerten um zu bestimmen ob eine Verbindung möglich ist! Dieser sagt nicht aus ob ein Host erreichbar ist oder nicht, das weiß jeder IT-Azubi 
Gruß
Gruß

Purer Zufall weil die Route fehlt. Kannst du hier in diversen Batch-Threads nachlesen.
Nimm besser gleich Powershell und Test-Connection
https://ss64.com/ps/test-connection.html
Nimm besser gleich Powershell und Test-Connection
https://ss64.com/ps/test-connection.html
Hallo BKrieg,
False Negativ
Du hast Dein Laptop noch nicht ins Netzwerk gestöpselt, also 192.168.1.2 nicht erreichbar, also unterwegs
False Positiv
Du bist zu Gast in einem 192.168.1.0/24-Netzwerk, was nicht gerade ein exotisches Netzwerk ist.
Irgendein anderer Rechner mit der IP 192.168.1.2 beantwortet Deinen Ping.
Mein Vorschlag (ausbaubar)
1. Du solltest verlässlich Prüfen, ob Dein Netzwerk auch tatsächlich Dein Netzwerk ist.
Dazu fallen mir zwei Varianten ein:
a) Du prüfst auf eine dafür geeignete Datei im Netzwerk:
b) Du prüfst nicht nur die IP, sondern kontrollierst auch, ob dahinter die erwartete MAC-Adresse steckt.
(Anmerkung: Gruß an Friemler)
2. Wenn Du feststellst, dass Du nicht in Deinem Netzwerk bist, dann solltest Du noch prüfen, ob Du überhaupt in einem Netzwerk bist und dort auch Internetzugriff hast, denn wenn nicht wird eine VPN-Verbindung nicht funktionieren und sollte daher gar nicht erst gestartet werden.
Falls Dein VPN-Server auf externe Pings antwortet, dann
andernfalls
Bei 1. und 2. sind False Positiv ausreichend unwahrscheinlich.
False Negativ sind aber durchaus noch möglich.
Gruß Frank
EDIT: Dem Code bei 1.b) hab ich
Zitat von @BKrieg:
Wenn unser Server mit 192.168.1.2 nicht anpingbar ist, das heißt man nicht im Firmen-Netzwerk ist
Dieser Schluss ist doch bestenfalls ein Indiz und weit entfernt von einem Beweis.Wenn unser Server mit 192.168.1.2 nicht anpingbar ist, das heißt man nicht im Firmen-Netzwerk ist
False Negativ
Du hast Dein Laptop noch nicht ins Netzwerk gestöpselt, also 192.168.1.2 nicht erreichbar, also unterwegs
False Positiv
Du bist zu Gast in einem 192.168.1.0/24-Netzwerk, was nicht gerade ein exotisches Netzwerk ist.
Irgendein anderer Rechner mit der IP 192.168.1.2 beantwortet Deinen Ping.
Mein Vorschlag (ausbaubar)
1. Du solltest verlässlich Prüfen, ob Dein Netzwerk auch tatsächlich Dein Netzwerk ist.
Dazu fallen mir zwei Varianten ein:
a) Du prüfst auf eine dafür geeignete Datei im Netzwerk:
@echo off
if exist \\MeinServer\Freigabe\Ich-bin-zuhause.txt echo Ja das ist mein Server
b) Du prüfst nicht nur die IP, sondern kontrollierst auch, ob dahinter die erwartete MAC-Adresse steckt.
@echo off
set SuchMAC=0a-1b-2c-3d-4c-5e
set SollIP=192.168.1.2
arp -d %SollIP%
ping %SollIP% > nul
for /f "tokens=1,2" %%a in ('arp -a ^| findstr "%SuchMAC%"') do (
set "IstIP=%%a"
)
echo %IstIP% = %SollIP%
if "%IstIP%"=="%SollIP%" echo Ja das ist mein Server
2. Wenn Du feststellst, dass Du nicht in Deinem Netzwerk bist, dann solltest Du noch prüfen, ob Du überhaupt in einem Netzwerk bist und dort auch Internetzugriff hast, denn wenn nicht wird eine VPN-Verbindung nicht funktionieren und sollte daher gar nicht erst gestartet werden.
Falls Dein VPN-Server auf externe Pings antwortet, dann
ping externe-IP-des-VPN-Servers
andernfalls
ping example.com
Anschließende Auswertung
Bei 1. und 2. sind False Positiv ausreichend unwahrscheinlich.
False Negativ sind aber durchaus noch möglich.
Gruß Frank
EDIT: Dem Code bei 1.b) hab ich
arp -d %SollIP%
hinzugefügt, damit das anschließende Ping im Erfolgsfall eine frischen Eintrag erzeugt und bei Misserfolg nicht eventuell noch ein alter Eintrag vorhanden ist.
Ich würde es eher so machen:
Auf dem internen Firmen-DNS-Server einen dedizierten A-Record anlegen (z.B. internTest.domain.tld) der sich nur Firmenintern auflösen lässt. Dann reicht ein simples Resolve-DNSName/nslookup.
Die selbe Methode nutzt übrigens DirectAccess um festzustellen ob der Client intern/extern ist.
Auf dem internen Firmen-DNS-Server einen dedizierten A-Record anlegen (z.B. internTest.domain.tld) der sich nur Firmenintern auflösen lässt. Dann reicht ein simples Resolve-DNSName/nslookup.
Die selbe Methode nutzt übrigens DirectAccess um festzustellen ob der Client intern/extern ist.