У мене були ті ж проблеми, а також потрібен сценарій, щоб не відкривати інтерфейс користувача, якщо він уже підключений, і чекати, коли з'єднання закінчиться.
Я не зміг знайти хорошого рішення, тому написав своє. Він є на випадок, якщо він корисний іншим:
https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN
Windows Vista і вище; вільний; включає вихідний код C ++.
(Існує також подібний, старіший інструмент для вбудованого VPN-клієнта для Windows.)
Приклад використання за допомогою перемикача / verbose, який видає детальну інформацію про те, що він робить:
C: \> ConnectOpenVPN.exe / connect / adapter "OpenVPN" / config "MyVPN.ovpn"
ConnectOpenVPN: Перевірка стану мережевого адаптера "OpenVPN" ...
ConnectOpenVPN: мережевий адаптер "OpenVPN" не підключений.
ConnectOpenVPN: Запуск: "C: \ Program Files \ OpenVPN \ bin \ openvpn-gui.exe" --командуйте підключити "MyVPN.ovpn"
ConnectOpenVPN: Очікування появи інтерфейсу OpenVPN GUI ...
ConnectOpenVPN: знайдено графічний інтерфейс OpenVPN.
ConnectOpenVPN: Очікування закриття графічного інтерфейсу OpenVPN ...
ConnectOpenVPN: GUI OpenVPN закритий.
ConnectOpenVPN: Очікування / підтвердження VPN-з'єднання існує ...
ConnectOpenVPN: Підключено.
ConnectOpenVPN: CONNECT дія фінішується.
Я сподіваюся, що це стане в нагоді іншим людям.