PowerShall:VPN 接続をセットアップする
執筆日時:
OS をクリーンアップするたびに GUI で VPN をセットアップするのが面倒くさくなったので、PowerShell でできないかなーと思って少し調べた。
必要な部分だけ、上記のサイトから拝借、うちの場合[データの暗号化]を“最強の暗号化”にしなきゃいけないので、`AuthenticationMethod` に `Maximum` を指定。
$PreKey = "***"$VpnUrl = "" $VpnName = ""
Add-VpnConnection -Name $VpnName
-ServerAddress <span class="synIdentifier">$VpnUrl</span>
-RememberCredential -L2tpPsk $PreKey-AuthenticationMethod MSChapv2
-EncryptionLevel Maximum-TunnelType L2tp
-Force
これであっさり VPN を追加できたのだけど、うちの環境では CHAP
プロトコルも有効化しないと繋がらないらしい。ここのチェックボックスね。
GUI ではできないのかなぁ、と思い設定後に C:\Windows\system32\ncpa.cpl
を開いて手動でチェックを入れるスクリプトにしてみたりもしたけど、どうにもかっこ悪いので Twitter で聞いてみたら、幸い返事がいただけた。
もうお試しかもしれませんが、-AuthenticationMethod で複数の認証方法をカンマ使って指定したらうまくできます。 pic.twitter.com/4LsYAR7Ulv
— のらねこ! C95 12/30日曜 東ト27a (@ragemax) November 3, 2018
ぉ、AuthenticationMethod
って複数設定できるのか! ってことでちょい修正。
$PreKey = "***" $VpnUrl = "***" $VpnName = "テスト" Add-VpnConnection -Name $VpnName ` -ServerAddress $VpnUrl ` -RememberCredential -L2tpPsk $PreKey ` -AuthenticationMethod Chap,MSChapv2 ` # ここ -EncryptionLevel Maximum ` -TunnelType L2tp ` -Force
確かめてみたところ、意図したとおりにチェックボックスがオンになっていた。やったねー!
ちなみに ID とパスワードを設定するコマンドレットはないとのこと。
$RasExec = "C:\windows\system32\rasdial.exe" $VpnUser = "***" $VpnPass = "***" #Add User & Pass cmd.exe /c $RasExec $VpnName $VpnUser $VpnPass
上記サイトでは rasdial.exe を使った解決策が示されていたけど、うちは定期的なパスワード変更が義務付けられている & 1Password で資格情報を生成・管理しているので、バッチファイルにパスワードを書くのはやめた。
この認証ダイアログで[資格情報を記憶する]とかいうチェックボックスがあれば便利なんだがな―って思ってたけど、1度繋ぐと保存されるのかな? 2回目は聞かれなかった気がする。
とりあえずテストは完了したので、これを初期化スクリプトに追記して今日のお仕事は終わり。また便利になってしまった。
追伸
(もうめんどいからいいや)
— だるやなぎ准将 (@daruyanagi) November 3, 2018