Windows でのプロビジョニングのしくみ

Windows クライアントのプロビジョニング パッケージを使用すると、IT 管理者は構成設定を Windows クライアント デバイスに簡単に適用できます。 Windows 構成デザイナーは、プロビジョニング パッケージを簡単に作成できるようにするツールです。 Windows 構成Designerは、Microsoft Store からインストールできます。

プロビジョニング パッケージ

プロビジョニング パッケージには、リムーバブル メディアを介して提供したり、デバイスにダウンロードしたりできる特定の構成/設定と資産が含まれています。

設定や構成のセットを複数追加できるようにするには、プロビジョニング エンジンで使われる構成データを、複数の構成ソースを基に構築します。これらの構成ソースは、それぞれ個別のプロビジョニング パッケージで構成されています。 また各プロビジョニング パッケージには、異なるソースからのプロビジョニング データが含まれています。

プロビジョニング パッケージ (.ppkg) は、構成設定のコレクションのコンテナーです。 パッケージは次の形式です。

  • パッケージ メタデータ - メタデータには、パッケージ名、説明、バージョン、ランク付けなどのパッケージに関する基本情報が含まれています。

  • XML 記述子 - 各記述子は、パッケージに含まれるカスタマイズ資産または構成設定を定義します。

  • アセット ペイロード - アプリまたはデータ資産に関連付けられているカスタマイズ資産または構成設定のペイロード。

ランタイム デバイス プロビジョニングにプロビジョニング パッケージを使用するには、デバイスに接続されているリムーバブル メディア上のパッケージにアクセスするか、近距離通信 (NFC)、またはリモート ソースの場所からダウンロードします。

プロビジョニング パッケージの優先順位

デバイス プロビジョニングで複数のプロビジョニング パッケージを使用できる場合は、パッケージ マニフェストで定義されているパッケージ所有者の種類とパッケージのランク レベルの組み合わせを使って、設定の競合が解決されます。 事前に定義されたパッケージ所有者の種類を優先順位が低いものから高いものの順に次に示します。

  1. Microsoft

  2. シリコン ベンダー

  3. OEM

  4. システム インテグレーター

  5. 携帯電話会社

  6. IT 管理者

パッケージのランク レベルの有効な値の範囲は 0 ~ 99 です。

設定の競合が発生したとき、デバイスにプロビジョニングされる最終的な値は、設定を含むパッケージの所有者の種類の優先順位とランク レベルによって決まります。 所有者の種類が同じパッケージの場合、パッケージのランク レベルによって、デバイスでプロビジョニングする設定値のパッケージが決まります。

Windows がプロビジョニングする XML

Windows がプロビジョニングする XML は、エンド ユーザーによる構成が可能な設定を Microsoft や OEM のコンポーネントで宣言できるようにするフレームワークであり、コンポーネントの所有者が最小限の作業で設定を適用する際に利用できるオンデバイス インフラストラクチャです。

各コンポーネントの設定は、そのコンポーネントのパッケージ マニフェスト ファイルで宣言できます。 これらの宣言は Windows 構成デザイナーで使われる設定スキーマとなります。この設定スキーマによって、潜在的な設定がユーザーに対して公開され、イメージやプロビジョニング パッケージでカスタマイズを作成できるようになります。 Windows 構成デザイナーは、Windows がプロビジョニングする応答ファイルを使って宣言されたユーザーの構成を、オンデバイス プロビジョニング形式に変換します。

プロビジョニング エンジンで構成が選ばれると、Windows がプロビジョニングする XML が、選ばれたプロビジョニング データに取り込まれ、構成マネージャーを介して Windows がプロビジョニングする CSP に渡されます。 その後で、Windows がプロビジョニングする CSP はプロビジョニングを使って、実際に使われるコンポーネントの適切な場所に適用します。

プロビジョニング エンジン

プロビジョニング エンジンは、Windows 10/11 を実行しているデバイスで実行時にプロビジョニングと構成を管理するためのコア コンポーネントです。

プロビジョニング エンジンには、次の機能があります。

  • デバイスを実行しているときに (初回起動やセットアップ、OOBE を含む)、いつでも構成をプロビジョニングします。 デバイスの実行中、他のポイントに拡張することもできます。
  • Microsoft、OEM、システム インテグレーターは、複数の構成ソースから設定を読み取ったり、組み合わせたりする機能を、イメージに追加できます。また、IT 管理者、教育管理者、ユーザーは、これらの機能を実行時にデバイスに追加できます。 構成ソースは、イメージに組み込んだり、プロビジョニング パッケージから構築してデバイスに追加したりすることができます。
  • トリガーやイベントに応答して、プロビジョニングのステージを開始します。
  • プロビジョニング パッケージを認証します。
  • プロビジョニングのステージや、特定の構成に対応する一連のキー (SIM、MCC/MNC、IMSI 範囲など) に基づいて構成のセットを選んでから、この構成を、適用先となる構成管理インフラストラクチャに渡すことができます。
  • OOBE やコントロール パネルの UI と共に使うことで、固有の対応付けが判別できなかったときに、ユーザーは構成を選ぶことができます。

構成マネージャー

構成マネージャーは、Windows 10/11 デバイスを管理する統合された方法を提供します。 構成は、主に Open Mobile Alliance (OMA) Device Management (DM) と Client Provisioning (CP) の各プロトコルを使って実行されます。 構成マネージャーでは、さまざまなチャンネルから受け取るこれらのプロトコル要求が処理され、解析されます。また、これらの要求を構成サービス プロバイダー (CSP) に渡し、特定の管理要求と管理の設定を実行します。

プロビジョニング エンジンは、選んだ構成の実際の処理と適用をすべて、構成マネージャーに依存しています。 プロビジョニング エンジンでは、プロビジョニングのステージが特定され、一連のキーに基づいて、構成マネージャーに送る構成のセットを判別します。 その後で、構成マネージャーは解析を行い、設定を適用するために CSP を呼び出します。

CSP は構成マネージャーの配下で動作します。 構成の各セクションは、特定の CSP 向けに変換され、デバイス上の操作として解釈するための処理が実行されます。 各 CSP では、構成内の指示を変換し、適切な API とコンポーネントを呼び出して、要求されたプロビジョニング アクションを実行します。

ポリシーとリソースのマネージャー コンポーネント

ポリシー、リソース、およびコンテキストの各マネージャー コンポーネントでは、企業の環境を対象としたデバイスの登録と登録解除を管理します。 企業の環境への登録プロセスは、基本的には、企業がデバイスに適用する構成ポリシーとデバイス管理ポリシーのプロビジョニングとなります。 通常、このプロビジョニングは、ネットワーク接続を経由して企業のデバイス管理サーバーにデバイスを明示的にサインアップすることで行われます。 これにより、ユーザーはデバイスを使って企業のリソースにアクセスすることができ、企業はアクセスやデバイス自体の管理と制御を行うことができます。

企業の環境への登録と、プロビジョニング エンジンによって実行される構成の主な違いは、次のとおりです。

  • 登録では、制限や制御が加えられた一連のポリシーをデバイスに適用します。このようなポリシーは、ユーザーが完全には制御できない場合があります。 プロビジョニング エンジンでは、デバイスのさまざまな側面を構成する大規模な設定が公開されます。一般的には、このような設定はユーザーが調整することができます。
  • ポリシー マネージャーは、複数のエンティティからのポリシー設定を管理し、エンティティの優先順位に基づいて、選ばれた設定を実行します。 プロビジョニング エンジンでは、設定の適用は行われますが、さまざまなソースからの設定を優先順位付けすることはできません。 最後に適用され、使われているプロビジョニングが、実際に有効なプロビジョニングとなります。
  • さまざまな登録エンティティから適用される個々のポリシー設定は保存されるため、後で登録解除を行うときに、それらのポリシー設定を削除できます。 これにより、ユーザーは企業のポリシーを削除して、企業による制限を受けず、重要なデータを含まない状態にデバイスを戻すことができます。 プロビジョニング エンジンでは、個々のプロビジョニング設定は保持されません。また、適用されたすべての設定をロールバックする方法もありません。

Windows 10 では、デバイスを完全に管理するための DM サーバーを持たない企業や教育機関をサポートする場合に、プロビジョニングを利用したポリシーの適用と登録が必要になります。 プロビジョニング エンジンは、構成を使った登録とポリシーのプロビジョニングをサポートします。また、既にあるポリシーやリソースのマネージャー コンポーネントと直接統合したり、構成マネージャーを介して統合したりすることができます。

トリガーとステージ

トリガーは、システムの有効期間中に発生し、プロビジョニングのステージを開始するイベントです。 トリガーの例として、起動、OOBE、SIM 変更、ユーザーによる追加、管理者による追加、ユーザー ログイン、デバイスの更新、さまざまな手動トリガー (USB 経由の展開、電子メール添付ファイルや USB フラッシュ ドライブからの起動など) を挙げることができます。

トリガーが発生すると、特定のプロビジョニングのステージに対応したプロビジョニングが開始されます。 ステージは、次の設定の範囲に基づいて、セットにグループ化されます。

  • 静的: プロビジョニングで実行される最初のステージです。構成設定をシステムに適用して、OOBE をセットアップしたり、イメージの作成時には実行できなかったデバイス全体の設定を適用したりします。
  • システム: OOBE 中に実行され、システム全体の設定を構成します。
  • UICC: UICC ステージはデバイスの新しい UICC ごとに実行され、UICC や SIM カードの ID に基づいて構成とブランド化を処理します。 これにより、OEM が複数の携帯電話会社用に構成される 1 つのイメージを管理できるという、ランタイム構成のシナリオが可能になります。
  • 更新: 更新プログラムの後に実行され、更新された設定に関する潜在的な変更を適用します。
  • ユーザー: ユーザー アカウントの最初の実行時に実行され、ユーザーごとの設定を構成します。

OOBE 中のデバイス プロビジョニング

プロビジョニング エンジンは常に、OS パーティションの C:\Recovery\Customizations フォルダーに保存されたプロビジョニング パッケージを適用します。 プロビジョニング エンジンが %ProgramData%\Microsoft\Provisioning フォルダーにあるプロビジョニング パッケージを適用するとき、Windows アプリをインストールして構成するような特定の実行時設定の適用が OOBE パスでは完了せず、デバイスがデスクトップに接続されるときに引き続きバックグラウンドで処理されることがあります。 ポリシーを構成する設定と特定の重要なシステム構成は、それが有効になる必要のある最初の時点の前に常に完了します。

デバイスのユーザーは、デバイスの OOBE での初回起動時にリモート ソースからプロビジョニング パッケージを適用できます。 OOBE 中のデバイス プロビジョニングは、言語、ロケール、タイムゾーンなどの設定が OOBE の最初の UI ページで構成された後にのみトリガーされます。 デバイス プロビジョニングがトリガーされると、OOBE ページにプロビジョニング UI が表示されます。 プロビジョニング UI では、NFC やリムーバブル メディアなどのリモート ソースから取得したプロビジョニング パッケージを選択できます。

次の表は、ユーザーが OOBE で初回起動したときに、どのようにデバイス プロビジョニングを開始できるかを示しています。

パッケージの配信 開始方法 サポートされるデバイス
リムーバブル メディア - USB ドライブまたは SD カード
(パッケージはメディア ルートに配置する必要があります)
Windows キーを 5 回高速タップしてプロビジョニング UI を起動する すべての Windows デバイス
管理者デバイスからコンピューター間 NFC または NFC タグ
を使用する (管理者デバイスは、NFC 経由でパッケージを転送できるアプリを実行する必要があります)
Windows キーを 5 回高速タップしてプロビジョニング UI を起動する Windows IoT Core デバイス

プロビジョニング エンジンは、OOBE 中に処理する前に、取得したプロビジョニング パッケージを %ProgramData%\Microsoft\Provisioning フォルダーに常にコピーします。 プロビジョニング エンジンは、パッケージが署名され信頼できるかどうかに関係なく、Windows セットアップの OOBE パス中に、インストールされた Windows イメージに埋め込まれたプロビジョニング パッケージを常に適用します。 OOBE 中にプロビジョニング エンジンが暗号化されたプロビジョニング パッケージをエンドユーザー デバイスに適用するとき、ユーザーはまずパッケージの暗号化を解除する有効なパスワードを指定する必要があります。 プロビジョニング エンジンは、プロビジョニング パッケージが署名され信頼できるかどうかも確認します。そうでない場合、ユーザーは、パッケージをデバイスに適用する前に、適用に同意する必要があります。

プロビジョニング エンジンが OOBE 中にプロビジョニング パッケージを適用するときは、パッケージから実行時設定のみがデバイスに適用されます。 実行時設定には、セキュリティ ポリシー、Windows アプリのインストール/アンインストール、ネットワーク構成、MDM 登録のブートストラップ、ファイル資産のプロビジョニング、アカウントとドメインの構成、Windows エディションのアップグレードなど、システム全体の構成設定を含みます。 プロビジョニング エンジンは、地域/ロケールや SIM カードなど、デバイスの構成設定も確認し、条件に一致するマルチバリアント設定を適用します。

実行時のデバイス プロビジョニング

デバイス実行時に、ユーザーによる操作でスタンドアロンのプロビジョニング パッケージを適用することができます。 次の表に、デバイス実行時のプロビジョニングをいつ開始できるかを示します。

パッケージの配信 開始方法 サポートされるデバイス
リムーバブル メディア - USB ドライブまたは SD カード
(パッケージはメディア ルートに配置する必要があります)
[設定]>[アカウント]>[職場または学校にアクセスする]>[プロビジョニング パッケージを追加または削除する] すべての Windows デバイス
ネットワーク接続からダウンロードし、ローカル フォルダーにコピー パッケージ ファイルのダブルクリック デスクトップ エディション デバイス用の Windows クライアント
USB テザリングを介してターゲット デバイスに接続された管理者デバイスから パッケージ ファイルをドラッグしてターゲット デバイスにドロップ Windows IoT Core デバイス

デバイスに接続されたリムーバブル メディアからプロビジョニング パッケージを適用するときは、プロビジョニングするパッケージを選ぶ前に、[設定] UI でパッケージの内容を表示できます。 ソースが不明のプロビジョニング パッケージを適用してデバイスがスパムの標的となるリスクを最小限に抑えるために、プロビジョニング パッケージに署名して暗号化することができます。 パートナーは、デバイス実行時のプロビジョニング パッケージの適用を制限するポリシーも設定できます。 デバイス実行時にプロビジョニング パッケージを適用するには、管理者特権が必要です。 パッケージが署名または信頼されていない場合、ユーザーは、パッケージをデバイスに適用する前に、適用に同意する必要があります。 パッケージが暗号化されている場合は、デバイスに適用する前に、パッケージの暗号化を解除する有効なパスワードが必要です。

複数のプロビジョニング パッケージをデバイスに適用するとき、プロビジョニング エンジンは、パッケージのメタデータで定義されているパッケージ所有者の種類とパッケージのランク レベルの組合せを使用してパッケージのランクを評価することで、パッケージによって構成値が異なるという設定の競合を解決します。 パッケージのランクが一番高いプロビジョニング パッケージから適用される構成設定が、デバイスに適用される最終的な値になります。

スタンドアロンのプロビジョニング パッケージをデバイスに適用すると、そのパッケージはデバイスの %ProgramData%\Microsoft\Provisioning フォルダーに保存されます。 管理者は、[設定]>[アカウント]>[職場または学校にアクセスする] の下にある [プロビジョニング パッケージを追加または削除する] を使って、プロビジョニング パッケージを削除できます。