Resolveu como abaixo:
do prompt de comando do windows -
Isso iniciará o cliente opn vpn gui conectando-se diretamente à conexão especificada na configuração.
É possível iniciar um windows openvpn client para fazer com que ele se conecte usando uma configuração predefinida (.ovpn) fornecendo argumentos de programa usando o prompt de comando. Ou especificar os argumentos no atalho ao abrir a partir do atalho do Windows, etc.
Lembre-se de que, se o openvpn-gui.exe
já tiver sido iniciado, as respostas acima não funcionarão. Preste atenção na seção: executar de um pequeno arquivo em lote que fiz para iniciar automaticamente a conexão openVPN quando não estiver em casa:
rem This script is fired from Task Scheduler (using Custom Event filter) when I am NOT at home (not connected to home network)
rem so check if my home NAS is already pingable, because maybe old/previous OpenVPN connection is still open
rem if not then start OpenVPN connection
rem if yes than do nothing
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
IF ERRORLEVEL 1 goto run
rem do nothing because NAS is pingable
goto finished
:run
rem be sure to kill previous (closed) openvpn process so reconnecting actually works!
taskkill.exe /F /IM openvpn.exe
taskkill.exe /F /IM openvpn-gui.exe
timeout 1
start /b "" "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect nas_at_home.ovpn
:finished
Além da resposta do Flowerking, você pode especificar a pasta em que seu arquivo ovpn mora, talvez para armazenar dados de chave privada no espaço do usuário. Para isso, use config_dir
:
openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
Aqui está um exemplo simples, se você deseja se conectar a mais VPNs do que uma:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect vpn1.ovpn --connect vpn2.ovpn
Não funcionará se o openvpn-gui.exe
estiver em execução.
Você pode melhorar a resposta do @Jan mudando:
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
para:
ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished
Dessa forma, você não precisa criar um arquivo temporário.