マルチバリアント設定を含むプロビジョニング パッケージを作成する

組織では、管理デバイスの構成のさまざまな要件があります。 組織内で異なる要件を持つデバイスのそれぞれのグループに、個別のプロビジョニング パッケージを作成できます。 または、マルチバリアント プロビジョニング パッケージを使うと、複数の条件で機能する 1 つのプロビジョニング パッケージを作成することができます。 たとえば、1 つのプロビジョニング パッケージで、あるセットのカスタマイズ設定にはデバイスをフランス語で設定するように定義し、別のセットのカスタマイズ設定にはデバイスを日本語で設定するように定義できます。

マルチバリアント設定をプロビジョニングするには、Windows 構成デザイナーを使って、すべてのデバイスに適用するすべてのカスタマイズ設定を含む、プロビジョニング パッケージを作成します。 次に、プロジェクトの .XML ファイルを手動で編集し、デバイスの各セット (ターゲット) を定義します。 それぞれのターゲットでは、少なくとも 1 つの条件の値を指定します。これによりデバイスが受信する構成を識別します。 最後に、それぞれのターゲットで、それらのデバイスに適用するカスタマイズ設定を指定します。

まず、ターゲットの定義の方法から説明します。

ターゲットを定義する

XML ファイルで Id またはフレンドリ名を各 Target に指定します。 各 Target は少なくとも 1 つの TargetState で定義されます。これには少なくとも 1 つの Condition が含まれます。 Condition 要素では、条件と指定された値との間の照合の種類を定義します。

Target には複数の TargetState を含むことができます。TargetState には複数の Condition を含むことができます。

複数のターゲットの状態と条件を持つターゲット。

次の情報では、ターゲット定義のロジックについて説明します。

  • すべての Condition 要素が TRUE の場合、 TargetState は TRUE です。

    すべての条件が true の場合、ターゲットの状態は true です。

  • いずれかの TargetState 要素が TRUE の場合、Target は TRUE であり、ID を使用してカスタマイズを設定できます。

    いずれかのターゲット状態が TRUE の場合にターゲットは TRUE

条件

次の表は、 TargetState の Windows クライアント プロビジョニングでサポートされる条件を示しています。

条件名 条件の優先順位 デスクトップ エディション用の Windows クライアント 値の種類 値の説明
MNC P0 サポートされています 数字列 Mobile Network Code (MNC) の値に基づいた設定を対象とするために使います。
MCC P0 サポートされています 数字列 Mobile Country Code (MCC) の値に基づいた設定を対象とするために使います。
SPN P0 サポートされています 文字列 サービス プロバイダー名 (SPN) の値に基づいた設定を対象とするために使います。
PNN P0 サポートされています 文字列 公衆陸上移動網 (PLMN) におけるネットワーク名の値に基づいた設定を対象とするために使います。
GID1 P0 サポートされています 数字列 グループ識別子 (レベル 1) の値に基づいた設定を対象とするために使います。
ICCID P0 サポートされています 数字列 集積回路カード識別子 (ICCID) の値に基づいた設定を対象とするために使います。
Roaming P0 該当なし ブール値 ローミングを指定するために使います。 値を 1 (ローミング) または 0 (非ローミング) に設定します。
UICC P0 該当なし 列挙値 Universal Integrated Circuit Card (UICC) の状態を指定するために使います。 値を次のいずれかに設定します:


- 0 - Empty
- 1 - Ready
- 2 - Locked
UICCSLOT P0 該当なし 数字列 UICC のスロットを指定するために使います。 次のいずれかの値を設定します。


- 0 - スロット 0
- 1 - スロット 1
ProcessorType P1 サポートされています 文字列 プロセッサの種類に基づいた設定を対象とするために使います。
ProcessorName P1 サポートされています 文字列 プロセッサの名前に基づいた設定を対象とするために使います。
AoAc ("Always On, Always Connected") P1 サポートされています ブール値 値を 0 (false) または 1 (true) に設定します。 この状態が TRUE の場合、システムは S0 低電力アイドル モデルをサポートします。
PowerPlatformRole P1 サポートされています 列挙値 優先する電源管理プロファイルを示します。 POWER_PLATFORM_ROLE 列挙に基づいて値を設定します。
SocIdentifier P1 サポートされています 文字列 Soc 識別子に基づいて設定をターゲットにするには、 を使用します。 25301 OS ビルド バージョン以降で使用できます。
Architecture P1 サポートされています 文字列 PROCESSOR_ARCHITECTURE 環境変数と一致させます。
Server P1 サポートされています ブール値 値を 0 (false) に設定するか、1 (true) を設定してサーバーを識別します。
Region P1 サポートされています 列挙値 ISO 3166-1: 2 文字コード の 2 文字 ISO コードを使って、国/地域のターゲットを設定するために使います。
Lang P1 サポートされています 列挙値 ISO 639: 2文字コード を使って、言語コードのターゲットを設定するために使います。

Windows クライアントでサポートされる一致する型は次のとおりです。

照合の種類 構文
完全一致の照合 照合の種類はそのまま指定されます。 <Condition Name="ProcessorName" Value="Barton" />
正規表現一致 照合の種類には "Pattern:" というプレフィックスが付きます。 <Condition Name="ProcessorName" Value="Pattern:.Celeron."/>
数値範囲の照合 照合の種類には "!Range:" というプレフィックスが付きます。 <Condition Name="MNC" Value="!Range:400, 550" />

TargetState の優先順位

デバイスの条件に一致するデバイスに設定を適用するように、プロビジョニングパッケージ内に複数の TargetState を定義できます。 プロビジョニング エンジンが各 TargetState を評価すると、複数の TargetState が現在のデバイス条件に適合する可能性があります。 設定の適用順序を決めるために、システムによってすべての TargetState に優先順位が割り当てられます。

優先順位の低い TargetState に一致する設定は、優先順位の高い TargetState に一致する設定の前に適用されます。 つまり、優先順位の高い TargetState の設定は、優先順位の低い TargetState の設定を上書きできます。

同じ優先順位の複数の TargetState に一致する設定は、プロビジョニング パッケージで各 TargetState が定義されている順序に従って適用されます。

TargetState の優先順位は、条件の優先順位に基いて割り当てられます (優先順位については「Conditions の表」をご覧ください)。 優先順位の評価ルールは、次のとおりです。

  1. TargetState (P0 条件を満たす) は、TargetState (P0 条件を満たさない) よりも高い。

  2. TargetState (P0 および P1 条件を満たす) は、TargetState (P0 条件のみを満たす) よりも高い。

  3. より多くの P0 条件を満たす TargetState は、満たされる P1 条件の数にかかわらず、より少ない P0 条件を満たす TargetState よりも高い。

  4. 満たされる P0 条件の数が等しい場合、P1 条件を満たす数が最も多い TargetState が高い優先順位となる。

  5. 満たされる P0 条件の数が等しく、満たされる P1 条件の数も等しい場合、満たされる条件の合計数が最も多い TargetState が高い優先順位となる。

マルチバリアント設定を含むプロビジョニング パッケージを作成する

マルチバリアント機能を含めてプロビジョニング パッケージを作成するには、次の手順に従います。

  1. プロビジョニング パッケージをビルドし、特定の条件下で適用するカスタマイズを構成します。 詳しくは、「プロビジョニング パッケージの作成」をご覧ください。

  2. 設定を構成したら、プロジェクトを保存します。

  3. プロジェクト フォルダーを開き、customizations.xml ファイルを任意のローカルの場所にコピーします。

  4. XML またはテキスト エディターを使用して、customizations.xml ファイルを開きます。

    customizations.xml ファイルには、パッケージのメタデータ (パッケージの所有者と順位を含む) と、プロビジョニング パッケージの作成時に構成した設定が記述されています。 ファイルの Customizations ノードには Commonセクションがあり、カスタマイズの設定が含まれています。

    次の例は、サンプルの customizations.xml ファイルの内容を示しています。

    <?xml version="1.0" encoding="utf-8"?>
    <WindowsCustomizations>
     <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
       <ID>{6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e}</ID>
       <Name>My Provisioning Package</Name>
       <Version>1.0</Version>
       <OwnerType>OEM</OwnerType>
       <Rank>50</Rank>
     </PackageConfig>
     <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
       <Customizations>
         <Common>
           <Policies>
             <AllowBrowser>0</AllowBrowser>
             <AllowCamera>0</AllowCamera>
             <AllowBluetooth>0</AllowBluetooth>
           </Policies>
           <HotSpot>
             <Enabled>0</Enabled>
           </HotSpot>
         </Common>
       </Customizations>
     </Settings>
    </WindowsCustomizations>
    
    
  5. customizations.xml ファイルを編集し、Targets セクションを作成して、マルチバリアント設定を処理する条件を記述します。

    次の例は、ProcessorNameProcessorTypeMCCMNC などの条件を含むように修正した customizations.xml を示しています。

    <?xml version="1.0" encoding="utf-8"?>
    <WindowsCustomizations>
     <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
       <ID>{6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e}</ID>
       <Name>My Provisioning Package</Name>
       <Version>1.0</Version>
       <OwnerType>OEM</OwnerType>
       <Rank>50</Rank>
     </PackageConfig>
     <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
       <Customizations>
         <Common>
           <Policies>
             <AllowBrowser>0</AllowBrowser>
             <AllowCamera>0</AllowCamera>
             <AllowBluetooth>0</AllowBluetooth>
           </Policies>
           <HotSpot>
             <Enabled>0</Enabled>
           </HotSpot>
         </Common>
         <Targets>
           <Target Id="Unique target identifier for desktop">
             <TargetState>
               <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" />
               <Condition Name="ProcessorType" Value="Pattern:.*(I|i)ntel.*" />
             </TargetState>
             <TargetState>
               <Condition Name="ProcessorName" Value="Barton" />
               <Condition Name="ProcessorType" Value="Athlon MP" />
             </TargetState>
           </Target>
           <Target Id="Mobile target">
             <TargetState>
               <Condition Name="MCC" Value="Range:310, 320" />
               <Condition Name="MNC" Value="!Range:400, 550" />
             </TargetState>
           </Target>
         </Targets>
       </Customizations>
     </Settings>
    </WindowsCustomizations>
    
    
  6. customizations.xml ファイル内に、カスタマイズが必要な設定用に Variant セクションを作成します。 そのためには、次の手順に従います。

    a. 子 TargetRefs 要素を定義します。

    b. TargetRefs 要素内に TargetRef 要素を定義します。 カスタマイズ設定を適用する必要のある Id ごとに、複数の TargetRef 要素を定義することができます。

    c. 準拠設定を Common セクションから Variant セクションに移動します。

    いずれかの TargetRef 要素が Target に一致する場合 Variant内のすべての設定が適用されます。

    複数の Variant セクションを定義できます。 Common セクション内に存在する設定は、すべてのトリガー イベントごとに無条件に適用されます。

    次の例は、Variant セクションと移動された設定 (バリアントの条件が満たされると適用される) が含まれるように更新された customizations.xml を示します。

    <?xml version="1.0" encoding="utf-8"?>
    <WindowsCustomizations>
     <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
       <ID>{6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e}</ID>
       <Name>My Provisioning Package</Name>
       <Version>1.0</Version>
       <OwnerType>OEM</OwnerType>
       <Rank>50</Rank>
     </PackageConfig>
     <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
       <Customizations>
         <Common>
         </Common>
         <Targets>
           <Target Id="Unique target identifier for desktop">
             <TargetState>
               <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" />
               <Condition Name="ProcessorType" Value="Pattern:.*(I|i)ntel.*" />
             </TargetState>
             <TargetState>
               <Condition Name="ProcessorName" Value="Barton" />
               <Condition Name="ProcessorType" Value="Athlon MP" />
             </TargetState>
           </Target>
           <Target Id="Mobile target">
             <TargetState>
               <Condition Name="MCC" Value="Range:310, 320" />
               <Condition Name="MNC" Value="!Range:400, 550" />
             </TargetState>
           </Target>
         </Targets>
         <Variant>
           <TargetRefs>
             <TargetRef Id="Unique target identifier for desktop" />
             <TargetRef Id="Mobile target" />
           </TargetRefs>
           <Settings>
             <Policies>
               <AllowBrowser>1</AllowBrowser>
               <AllowCamera>1</AllowCamera>
               <AllowBluetooth>1</AllowBluetooth>
             </Policies>
             <HotSpot>
               <Enabled>1</Enabled>
             </HotSpot>
           </Settings>
         </Variant>
       </Customizations>
     </Settings>
    </WindowsCustomizations>
    
    
  7. 更新された customizations.xml ファイルを保存し、このファイルのパスを書き留めます。 このパスは、次の手順で値の 1 つとして必要になります。

  8. Windows 構成デザイナーのコマンド ライン インターフェイス で、更新された customizations.xml を使用してプロビジョニング パッケージを作成します。

    以下に例を示します。

    icd.exe /Build-ProvisioningPackage /CustomizationXML:"C:\CustomProject\customizations.xml" /PackagePath:"C:\CustomProject\output.ppkg" /StoreFile:C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\Microsoft-Common-Provisioning.dat"
    

この例では、StoreFile は、必要な Windows エディションのパッケージを作成するために使用される設定ストアの場所に対応しています。

この手順で作成したプロビジョニング パッケージには、マルチバリアント設定が含まれます。 このパッケージは、Windows デバイスに適用できるスタンドアロン パッケージとして使うことも、別のプロジェクトを開始する際のベースとして使うこともできます。

プロビジョニングをトリガーするイベント

マルチバリアント プロビジョニング パッケージを Windows クライアント デバイスにインストールすると、プロビジョニング エンジンは、すべてのイベントで一致条件設定を適用し、プロビジョニングをトリガーします。

次のイベントは、Windows クライアント デバイスでのプロビジョニングをトリガーします。

イベント デスクトップ エディション用の Windows クライアント
システムの起動 サポートされています
オペレーティング システムの更新 計画されています
デバイスの初回実行でのパッケージ インストール サポートされています
SIM の存在または更新の検出 サポートされています
実行時のパッケージ インストール サポートされています
ローミングの検出 サポートされていません