すべての Windows ユーザー向けに Azure P2S VPN プロファイルをスクリプト化する
スイッチにブール値を渡すと Add-VpnConnection は EapConfigXmlStream エラーを出します。フリートへ展開する前にスコープと欠けたルートを修正してください。
Azure のポイント対サイト パッケージを手作業で配るのは五台までは機能し、五十台で崩壊する。スクリプト経路には、証明書の失敗に見えるパラメーター エラーと、ほかがすべて正しくても接続が決してインストールしないルートという二つの罠があり、それぞれ半日を費やす。どちらもクライアント パッケージを再ダウンロードして直るものではない。以下のチェックを順に実行し、最初に失敗したところで止める。
各手順は前の手順が正しいことを前提にするため、順序は固定している。
1. 最初のデバイスの前にプロファイルのスコープを修正する
すべてのユーザー向けの プロファイル はマシン上に存在し、すべてのセッションに表示される。ユーザーごとのプロファイルは一つのアカウントに従い、そのアカウントのコンテキストに資格情報を保持するため、どちらか一方を選んで使い続けるべきだ。両方を載せたマシンは同じ名前のエントリを二つ表示し、ユーザーは先に現れた方に接続する。後からスコープを変えるなら、その場で編集するのではなく古いプロファイルを先に削除する。
すべてのユーザー向けのプロファイルは、誰も個人アカウントでサインインしない共有デバイスやキオスクに適している。証明書が人ごとに発行される場合は誤った既定であり、マシン全体のプロファイルは他人の資格情報を提示できない。二台目のノート PC が存在する前に、その選択を展開記録に書いておく。
2. スイッチはスイッチとして渡す
Add-VpnConnection は、存在するか存在しないかのどちらかであるスイッチ パラメーターを受け取り、それらに $true を渡すと EapConfigXmlStream エラーが発生する。この話題の多くのスレッドが、決して問題ではなかった証明書チェーンを調べて終わるのはそのためだ。
Add-VpnConnection -Name "Contoso P2S" `
-ServerAddress "azuregateway-00000000-0000-0000-0000-000000000000.cloudapp.net" `
-AllUserConnection -UseWinLogonCredential -RememberCredential `
-TunnelType Automatic -EncryptionLevel Required -AuthenticationMethod MSChapv2上のゲートウェイ アドレスは例示であり、ダウンロードしたパッケージから実際のものを取得して引用符で囲んだままにする。 -AllUserConnection には昇格したセッションが必要で、作成されるプロファイルは管理者としてコマンドを実行してもマシン スコープになる。スイッチをさらに足す前に、Get-Help Add-VpnConnection -Parameter * でパラメーター セットを読むこと。
3. アダプターが追加しないルートを追加する
ポイント対サイト アダプターはクライアント アドレス プール用のルートを一つインストールするだけで、ほかは何もしない。
そのプール外の仮想ネットワーク プレフィックスは、トンネルが Connected を報告し続けても到達できないままで、これがこの作業で最も紛らわしい失敗だ。接続が成功した後にルートを明示的に追加し、パブリックなゲートウェイ名ではなくアダプターが受け取ったインターフェイス アドレスを指すようにする。そのアドレスは接続後に ipconfig から得られ、セッション間で変わる。
route add 10.0.0.0 mask 255.255.0.0 10.0.1.5
route print -4 | findstr /c:"10.0.0.0"切断時にルートを削除し、古いネクスト ホップが後でトラフィックをブラックホールに送らないようにする。このコマンドは文書化されたローカルな逸脱として扱い、将来のクライアント リリースがルート自体を追加すると、あなたの行はパッケージ自身のネクスト ホップと競合する重複になる。
4. 標準ユーザーとして検証する
管理者セッションは、昇格が実ユーザーなら持たない資格情報を供給することがあるため、スコープの誤りを隠す。
管理者以外でサインインし、プロファイル経由で接続し、パブリック インターネットではなくプライベート サービスを一つ試す。プロファイルが Get-VpnConnection -AllUserConnection に現れ、状態が Connected に達し、追加したルートが現在のアダプター アドレスを指すことを確認する。次にマシンをスリープさせ、復帰させて、ipconfig を再度比較する。
5. 悪い展開をきれいに取り除く
Remove-VpnConnection を -AllUserConnection と -Force と共に使うと、マシン スコープのプロファイルが削除される。接続中のプロファイルはそうしないと削除を拒むため、Force は重要であり、半分だけ削除されたプロファイルはきれいな再インストールより診断が難しい。
プロファイル名、ゲートウェイ アドレス、追加したルートを展開ノートに残す。この三つの値は、誰かがチケットを開く前にヘルプデスクの通話が必要とするものであり、ゲートウェイ アドレスが変わったときに次のスクリプトが必要とするものでもある。ルートの挙動は Windows ではなくクライアント パッケージに属するため、そのバージョンも同じノートに加える。