揮発性のメモ2

http://d.hatena.ne.jp/iww/

vpncmd を非対話で使う

ソフトイーサで、vpncmd を非対話で使うために試行錯誤した内容を書く

マニュアルは下記を参照
https://ja.softether.org/4-docs/1-manual/6/6.2

接続

vpncmd はVPNブリッジなどへ接続して設定するためのクライアントであり、つまりVPNブリッジ(管理サーバ)が起動していないと設定は出来ない

オプションは /SERVER でも --server でもどっちの形式も受け付ける。 -hでヘルプは出ないので --helpか /? を使う。 大文字小文字の区別はほぼ無い

vpncmd localhost:443 /SERVER /PASSWORD:password /adminhub:BRIDGE
localhost:443 接続先ホスト名とポート番号
/SERVER VPNブリッジへ接続するモード指定
/PASSWORD:password 管理用パスワード
/ADMINHUB:BRIDGE ブリッジ名(HUBの編集をするとき)


ポート番号は省略すると 443

コマンド

/CMDオプションで直接実行するのと、/INオプションでファイルから読んで実行するのとある。ファイルから読む形式の方がつぶしが効く

vpncmd localhost /SERVER /PASSWORD:password /adminhub:BRIDGE /IN:/tmp/cmdlist.txt /OUT:/tmp/result.log
/IN:/tmp/cmdlist.txt コマンドファイル
/OUT:/tmp/result.log ログファイル(画面に出るので上書きする)

コマンドファイル

基本的にプロンプトから手で打つのと同じものを書くだけ。
そのためか、コメント機能は無いので そこだけどうするかわからん。 天才にコメントは不要なのか

例:/tmp/cmdlist.txt (カスケード接続の設定の編集)

CascadeSet cas_hoge /SERVER:vpn.example.com:443 /HUB:hub_hoge
CascadeUsernameSet cas_hoge /USERNAME:username
CascadePasswordSet cas_hoge /PASSWORD:password /TYPE:standard
cas_hoge 編集対象のカスケード接続名
/SERVER:vpn.example.com:443 接続先VPNサーバ ホスト名とポート番号
/HUB:hub_hoge 接続先HUB名
/USERNAME:username 接続に使うユーザ名
/PASSWORD:password 接続に使うパスワード
/TYPE:standard 認証方式(固定)


エラー処理

最後のエラーだけエラーコードが取得できる。途中でエラーが発生しても次のコマンドの成否で上書きされるので全然だめ。

VPN Server/BRIDGE>CascadePasswordSet cas_hoge /PASSWORD:password /TYPE:standard
CascadePasswordSet command - Set User Authentication Type of Cascade Connection to Password Authentication
Error occurred. (Error code: 29)   ★←これをgrep
Object not found.

ログファイルを見て、Error occurred.を探すしかなさそう