ドメイン共有から VPN プロファイルを配布すれば、すべてうまくいく——ドメインに届かないノート PC までは。その時点で配布は、プロファイルが作るために存在する接続そのものに依存する。そのノート PC を抱えた人は、ヘルプデスクが見えない場所にいる。初回インストールと日常の更新は、一つのパッケージを通る二つの別経路として扱う。両者の失敗の仕方には共通点がないからだ。

初回インストールは別の問題だ

重要な出来事は二つあり、ネットワークが協力している間に起きるのはそのうち一つだけだ。表は、何が利用できるか、何が作業を開始させるか、ふだんどこでつまずくかで両者を分ける。

First installRoutine update
Network reachableSomething other than the VPN being installedThe domain or a management channel
TriggerEnrollment, imaging, or a prepared packageA policy refresh or a management push
Usual failureNo route to the package at allDuplicate profiles, or a change that silently does nothing

レビュー済みの成果物は一つで両方の経路に使えるが、接続についての前提は共有できない。スタートアップ スクリプトは、社内ネットワークの机上で動いている間はその前提を隠し、現場ではそれを露呈させる。スクリプトに欠陥があるのではない。誰も設計していない場所で動かすよう求められているだけだ。

パッケージに入れるべきもの

パッケージ化の前に五つを決める。どの Windows プロファイル方式がサポートされているか、スコープがユーザー単位かデバイス単位か、どの証明書やクライアント コンポーネントが前提条件か、プロファイル定義が何を語るか、どの操作がそれを適用するか。ProfileXML は VPN 設定を表現するサポートされた方法で、VPNv2 CSP を通じて配信される。Microsoft のプロファイル オプション ガイド には何を載せられるかが並んでいる。その一覧の外側は、その場で下す判断だ。

補助スクリプトのパラメーターはそのスクリプトのものだ。xmlFilePath や AllUserConnection のような名前は一人の作者の選択であり、どのインストーラーも従う標準ではない。別のスクリプトへ写すと、正しく見えて何もしないコマンドになる。

スクリプトと定義を同じ版の下に置き、両方がどこから来たのかを権限とともに監査する。SYSVOL からたまたま読める特権付きスタートアップ スクリプトは、依然としてレビューされていない。ポリシーによる配布はレビューではない。

最初の接続を手に入れる

初回インストールは、デバイスにまだ別の方法で届く間に行う。承認されたネットワーク、既存の管理チャネル、あるいはそのために設計された登録ワークフローだ。選んだ認証方式の証明書と信頼の前提条件は同じパッケージに入る。まだ存在しないトンネル越しには何も取って来られないからだ。誰かが日付を約束する前に、三つの経路のうちどれがこの利用者にとって現実なのかを尋ねる。紙の上にしかない経路は、現場からの電話になる。

その瞬間に技術者または利用者が実際に何をするのかを書き留める。答えが IT が遠隔でつないで助けるというものなら、初回インストールの経路は、誰かが用意して支えなければならない二つ目の遠隔アクセス手段に静かに依存している。

更新には既知の状態が要る

マシンがドメインに戻れば、通常のドメインまたはデバイス管理のプロセスが引き継げる。誤りが忍び込むのはスコープだ。スタートアップ スクリプトはマシンのコンテキストで走るのに対し、ユーザーのログオン操作とデバイス管理操作はスコープも権限も異なりうる。

全ユーザー向けの接続エントリは、名前が何をほのめかそうと、ログオン前のデバイス トンネルではない。デバイス トンネルはプラットフォーム、プロトコル、資格情報について独自の要件を持ち、その要件を読むことが、ここでログオン前トンネルが可能かを知る唯一の方法だ。ログオン時に始まるユーザー トンネルは別の保証を与える。

更新の経路を再現可能にする。すでに管理されているプロファイルを見つけ、意図したユーザー設定を保ち、互換性のある定義を適用し、明確な結果を報告する。ポリシーを更新するたびに新しいプロファイルを作ることが、マシンに五つのエントリが残り、利用者が間違ったものを選ぶ理由だ。

支え続けられるようにする記録

引き継ぎには三つの答えが要る。新しく配布されたデバイスが最初の接続をどう得るか、誰がパッケージを変更できるか、管理者が互換性のない変更からどう戻るか。これらが書かれていれば、配備は、これから与えるアクセスをすでに持っている誰かに依存しなくなる。

その記録をパッケージ版の隣に置き、両方を同じ変更で更新する。そうしなければ、次の人が一年前に閉じたチケットから bootstrap の経路を組み直すことになる。

関連記事