Nutzt man den OpenVPN (Community)-Client unter Windows und möchte man Skripte oder Befehle nach einem Verbindungsaufbau oder einem Verbindungsabbau ausführen, muss man genau Wissen, mit welchem Namen und wo sich diese zu befinden haben.

Anhand der Dokumentation und und Hilfe von OpenVPN könnte man eigentlich davon ausgehen, das man via CLI oder Konfigurationsdatei mit folgenden Parametern die Skript-Ausführung steuert:

--up cmd : Run command cmd after successful tun device open.
--down cmd : Run command cmd after tun device close.

In der Konfigurationsdatei würde das z.B. so aussehen (können):

script-security 2
up "C:\\Users\\Andy\\OpenVPN\\config\\up.cmd"
down "C:\\Users\\Andy\\OpenVPN\\config\\down.cmd"

oder

up 'C:\\Users\\Andy\\OpenVPN\\config\\up.cmd'
down 'C:\\Users\\Andy\\OpenVPN\\config\\down.cmd'

Das funktioniert so allerdings nicht mit der GUI!

Stattdessen muss ein bestimmtes Schema eingehalten werden, das sich wie folgt darstellt:

Im benutzerbezogenen OpenVPN-Ordner unter

C:\Users\%username%\OpenVPN\config

bzw.

%userprofile%\OpenVPN\config

muss das auszuführende Skript mit dem gleichen Namen wie die *.ovpn-Datei beginnen und je nachdem ob diese nach dem Verbindungsaufbau mit “_up.bat” oder nach dem Verbindungsabbau mit “_down.bat” enden!

Ein Beispiel:

client.ovpn
client_up.bat
client_down.bat

Diese Skripte werden im Benutzerkontext ausgeführt und eignen sich so z.B. zum Verbinden von Netzlaufwerken.

Quelle

CodeThinkTank – Running Scripts on OpenVPN Connect and Disconnect