windows openvpn client を起動して、コマンドプロンプトを使用してプログラム引数を指定することにより、事前定義された構成(.ovpn)を使用して接続することは可能ですか?または、Windowsショートカットなどから開くときに、ショートカットで引数を指定します。
以下のように解決しました:
windowsコマンドプロンプトから
これにより、構成で指定された接続に直接接続するopn vpn guiクライアントが開始されます。
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
Flowerkingの回答に加えて、おそらくユーザー空間に秘密鍵データを格納するために、ovpnファイルが存在するフォルダーを指定できます。そのためには、config_dir
:
openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
1つではなく複数のVPNに接続する場合の簡単な例を次に示します。
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect vpn1.ovpn --connect vpn2.ovpn
openvpn-gui.exe
が実行されている場合は機能しません。
これが最近追加されたかどうかはわかりませんが、実行中のGUIインスタンスにコマンドを送信するために使用できる「--command」オプションがあります。
これで、次のことができますopenvpn-gui.exe --command connect config.ovpn
コマンドラインに移動して、openvpn-gui.exeのオプションを表示します。openvpn-gui.exe --help
同じ問題があり、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:Running: "C:\ Program Files\OpenVPN\bin\openvpn-gui.exe" --command connect "MyVPN.ovpn" ConnectOpenVPN:OpenVPN GUIが表示されるのを待っています... ConnectOpenVPN:OpenVPN GUIが見つかりました。 ConnectOpenVPN:OpenVPN GUIが閉じるのを待っています... ConnectOpenVPN:OpenVPN GUIが閉じました。 ConnectOpenVPN:VPN接続の存在を待機/確認しています... ConnectOpenVPN:Connected。 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
これにより、一時ファイルを作成する必要がなくなります。