Windows VPN-Verbindung automatisch beim Start herstellen und überwachen

Windows VPN-Verbindung automatisch beim Start herstellen und überwachen

Es gibt verschiedene Wege, eine VPN-Verbindung schon vor der Windows-Anmeldung aufzubauen: Seit Windows 7 kann man sich direkt vom Login-Bildschirm aus mit seinem Active Directory Konto an einem VPN anmelden, und wird anschließend automatisch in Windows angemeldet. Mit Direct Access hat Microsoft seit Windows Server 2008 R2 diese Lösung noch weiter verbessert, sodass nun auch die vollkommen automatische Anmeldung am VPN-Server möglich ist. Wie baut man aber ohne Direct Access bzw. Domänen-Login eine VPN-Verbindung automatisiert auf?

Anlegen einer VPN-Verbindung

Zunächst muss unter Windows eine VPN-Verbindung mit gespeicherten Zugangsdaten angelegt werden. Die Speicherung ist nötig, um die Verbindung wie in diesem Beispiel komplett ohne Nutzerinteraktion aufzubauen. Wahlweise kann man sie auch weglassen – Dann erscheint beim Start allerdings ein Login-Dialog und die VPN-Verbindung besteht erst, wenn der Anwender seine Daten eingegeben hat. Für automatisierte Lösungen die ohne Nutzerinteraktion auskommen sollen, ist die Speicherung daher bessere Wahl.

Dafür öffnen wir die Systemsteuerung – Unter Windows 7 über den rechten Bereich des Startmenüs, oder alternativ [Strg] + [X] unter Windows 8. Im Bereich Netzwerk und Freigabecenter auf den ersten Eintrag Netzwerkstatus und -aufgaben anzeigen klicken sowie im öffnenden Fenster Neue Verbindung oder neues Netzwerk einrichten

Zur Einrichtung einer neuen VPN-Verbindung ist der letzte Punkt namens Verbindung mit dem Arbeitsplatz herstellen die richtige Wahl – von der Bezeichnung Arbeitsplatz sollte man sich an dieser Stelle nicht verwirren lassen. Er dient allgemein zur Einrichtung von VPNs, unabhängig davon ob diese mit dem Arbeitsplatz verbunden sind oder nicht.

Auf die Frage wie die Verbindung hergestellt werden soll, wählen wir Die Internetverbindung (VPN) verwenden aus. Im letzten Schritt ist die Angabe der Domain und einer Bezeichnung (Zielname) erforderlich. Letzteres ist wichtig und sollte notiert werden, da wir diese Bezeichnung später benötigen. Damit der Nutzer kein Dialogfenster sieht in dem er die Zugangsdaten eingeben muss, ist zudem der Haken Anmeldedaten speichern an dieser Stelle relevant:

Batch-Script zur automatisierten Verbindung

Mit dem Editor der eigenen Wahl ist eine Batch-Datei (.bat) anzulegen. Darin wird die Verbindung mit folgendem Befehl aufgebaut:

rasdial.exe "VPN"

Wobei VPN hier beispielhaft für den im letzten Screenshot angegebenen Zielname steht, der frei wählbar ist. Die Anführungsstriche sind nicht zwingend erforderlich, sofern diese Bezeichnung keine Leerzeichen enthält. Damit das Script automatisch beim Computerstart ausgeführt wird, kann man es am besten mit einer Aufgabe über die Aufgabenverwaltung in den Autostart einbauen. Dazu wählt man als Trigger Beim Systemstart und gibt unter Aktionen den Pfad zur soeben erstellten Batch-Datei an. Alternativ könnte man natürlich auch eine Verknüpfung im Autostart-Ordner erstellen. Dann öffnet sich allerdings das Konsolenfenster. Außerdem muss es der ggf. vorhandene Nutzer geöffnet lassen bis die Verbindung hergestellt wurde.

Erweitertes Batch-Script: Überwachung der Verbindung

Unser im vorherigen Schritt erstelltes Batch-Script ist sehr rudimentär, und wird zumindest im Dauerbetrieb nicht stabil laufen. Beispielsweise stellt es die Verbindung nicht automatisch wieder her, wenn diese durch Netzwerkprobleme getrennt wurde. Auch benötigt Windows beim Start möglicherweise ein paar Sekunden Zeit, um die Internetverbindung herzustellen. Daher macht es Sinn, das Script um diese Funktionen zu erweitern:

@echo off
set "host=10.0.1.1"

; Wartezeit zum Herstellen der Netzwerkverbindung
ping -n 8 127.0.0.1 >nul: 2>nul:

:PingLoop
ping -n 1 "%host%" | findstr /r /c:"[0-9] *ms"

if %errorlevel% == 0 (
    echo [%date:~0% - %time:~0,8%] Check: Verbindung steht
set waitTime=120
) else (
    echo [%date:~0% - %time:~0,8%] VPN getrennt, versuche ReConnect...
    set waitTime=60
    rasdial.exe "VPN"
)

ping -n %waitTime% 127.0.0.1 >nul: 2>nul:
goto PingLoop
pause

Hier warten wir beim Start 8 Sekunden, um Windows genügend Zeit zum Aufbau der Internetverbindung zu lassen. Denn in den Eigenschaften der Verbindung gibt es zwar eine Option, um auf eine andere Verbindung zu warten. Allerdings funktionierte diese nur bei anderen VPN-Verbindungen, nicht bei herkömmlichen Netzwerkadaptern.

Im Weiteren wird die IP-Adresse 10.0.1.1 als Ping-Ziel gewählt. Dies muss je nach Netzwerk auf eine IP im VPN angepasst werden – Am besten die interne des VPN-Servers. In einer Schleife wird alle 120 Sekunden (änderbar oben) geprüft, ob die VPN-Verbindung steht. Falls nicht wird ein Verbindungsaufbau versucht. Die Wartezeit reduziert sich auf 60 Sekunden. Diese Werte können natürlich je nach Anforderung angepasst werden.

Leave a Reply