명령 프롬프트를 사용하여 프로그램 인수를 제공하여 사전 정의 된 구성 (.ovpn)을 사용하여 연결하도록 Windows openvpn 클라이언트 를 시작할 수 있습니까? 또는 Windows 단축키 등에서 열 때 단축키에 인수를 지정하십시오.
명령 프롬프트를 사용하여 프로그램 인수를 제공하여 사전 정의 된 구성 (.ovpn)을 사용하여 연결하도록 Windows openvpn 클라이언트 를 시작할 수 있습니까? 또는 Windows 단축키 등에서 열 때 단축키에 인수를 지정하십시오.
답변:
openvpn-gui.exe
위에서 이미 시작한 경우 답변이 작동하지 않습니다. 집에 없을 때 openVPN 연결을 자동으로 시작하기 위해 만든 작은 배치 파일에서 : run 섹션에주의하십시오.
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
나는 같은 문제가 있었고 UI가 이미 연결된 경우 UI를 다시 열지 않고 연결이 완료되기를 기다리는 스크립트가 필요했습니다.
나는 좋은 해결책을 찾지 못해서 내 자신의 것을 썼다. 다른 사람들에게 유용한 경우에 여기 있습니다.
https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN
Windows Vista 이상; 비어 있는; C ++ 소스 코드를 포함합니다.
또한 Windows 기본 제공 VPN 클라이언트를위한 유사한 이전 도구가 있습니다.
수행중인 작업에 대한 자세한 정보를 출력하는 / verbose 스위치를 사용한 사용법 예 :
C : \> ConnectOpenVPN.exe / connect / adapter "OpenVPN"/ config "MyVPN.ovpn" ConnectOpenVPN : "OpenVPN"네트워크 어댑터 상태 확인 중 ... ConnectOpenVPN : "OpenVPN"네트워크 어댑터가 연결되어 있지 않습니다. ConnectOpenVPN : 실행 중 : "C : \ Program Files \ OpenVPN \ bin \ openvpn-gui.exe"--connect "MyVPN.ovpn"명령 ConnectOpenVPN : OpenVPN GUI가 나타날 때까지 기다리는 중 ... ConnectOpenVPN : OpenVPN GUI를 찾았습니다. ConnectOpenVPN : OpenVPN GUI가 종료되기를 기다리는 중 ... ConnectOpenVPN : OpenVPN GUI가 닫혔습니다. ConnectOpenVPN : VPN 연결 대기 / 확인 중입니다 ... ConnectOpenVPN : 연결되었습니다. ConnectOpenVPN : CONNECT 조치가 완료되었습니다.
다른 사람들에게 유용하기를 바랍니다.
다음을 변경하여 @Jan의 답변을 향상시킬 수 있습니다.
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
에:
ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished
이런 식으로 임시 파일을 만들 필요가 없습니다.