Erstellen eines Bereitstellungspakets mit multivarianten Einstellungen

In Ihrer Organisation haben Sie möglicherweise verschiedene Konfigurationsanforderungen für Geräte, die Sie verwalten. Sie können separate Bereitstellungspakete für jede Gruppe von Geräten in Ihrer Organisation erstellen, die unterschiedliche Anforderungen haben. Oder Sie können ein multivariantes Bereitstellungspaket erstellen, ein einzelnes Bereitstellungspaket, das für mehrere Bedingungen funktioniert. In einem einzelnen Bereitstellungspaket können Sie beispielsweise einen Satz von Anpassungseinstellungen definieren, der für Geräte gilt, die für Französisch eingerichtet sind, und einen anderen Satz von Anpassungseinstellungen für Geräte, die für Japanisch eingerichtet sind.

Um multivariante Einstellungen bereitzustellen, verwenden Sie den Windows Configuration Designer, um ein Bereitstellungspaket zu erstellen, das alle Anpassungseinstellungen enthält, die Sie auf Ihre Geräte anwenden möchten. Bearbeiten Sie als Nächstes manuell die .XML-Datei für das Projekt, um jeden Satz von Geräten (ein Target) zu definieren. Für jedes Target geben Sie mindestens eine Condition mit einem Wert ein, der die Geräte identifiziert, die die Konfiguration erhalten sollen. Schließlich geben Sie für jedes Target die Anpassungseinstellungen an, die auf diese Geräte angwendet werden.

Wir beginnen mit dem Definieren eines Target.

Definieren eines Ziels (Target)

Geben Sie in der XML-Datei eine ID oder einen aussagekräftigen Namen für jedes Target an. Jedes Target ist durch mindestens einen TargetState definiert, der mindestens eine Condition enthält. Ein Condition-Element definiert den Abgleichstyp zwischen der Bedingung und dem angegebenen Wert.

Ein Target kann mehr als einen TargetState und ein TargetState kann mehr als eine Condition aufweisen.

Ziel mit mehreren Zielzuständen und -bedingungen.

Die folgenden Informationen beschreiben die Logik für die Zieldefinition:

  • Wenn alle Condition-Elemente TRUE sind, ist TargetState TRUE:

    Der Zielzustand ist true, wenn alle Bedingungen erfüllt sind.

  • Wenn eines der TargetState-Elemente TRUE ist, ist Target TRUE, und die ID kann zum Festlegen von Anpassungen verwendet werden:

    Das Ziel ist „true“, wenn alle Zielzustände „true“ sind.

Bedingungen

In der folgenden Tabelle sind die Bedingungen aufgeführt, die bei der Windows-Clientbereitstellung für einen TargetState unterstützt werden:

Bedingungsname Bedingungspriorität Windows-Client für Desktopeditionen Werttyp Wertbeschreibung
MNC P0 Unterstützt Ziffernfolge Wird für Einstellungen verwendet, die auf dem MNC (Mobile Network Code)-Wert basieren.
MCC P0 Unterstützt Ziffernfolge Wird für Einstellungen verwendet, die auf dem MCC (Mobile Country Code)-Wert basieren.
SPN P0 Unterstützt Zeichenfolge Wird für Einstellungen verwendet, die auf dem SPN (Service Provider Name)-Wert basieren.
PNN P0 Unterstützt Zeichenfolge Wird für Einstellungen verwendet, die auf dem PLMN (Public Land Mobile Network)-Wert basieren.
GID1 P0 Unterstützt Ziffernfolge Wird für Einstellungen verwendet, die auf dem Gruppen-ID (Level 1)-Wert basieren.
ICCID P0 Unterstützt Ziffernfolge Wird für Einstellungen verwendet, die auf dem ICCID (Integrated Circuit Card Identifier)-Wert basieren.
Roaming P0 Nicht verfügbar Boolesch Wird verwendet, um Roaming festzulegen. Legen Sie den Wert auf 1 (Roaming) oder 0 (kein Roaming) fest.
UICC P0 Nicht verfügbar Enumeration Verwenden Sie dies zum Angeben des Universal Integrated Circuit Card(UICC)-Zustands. Legen Sie den Wert auf einen der folgenden Werte fest:


- 0 - Empty
- 1 - Ready
- 2 - Locked
UICCSLOT P0 Nicht verfügbar Ziffernfolge Verwenden Sie dies zum Angeben des UICC-Slots. Legen Sie einen der folgenden Werte fest:


- 0 - Slot 0
- 1 - Slot 1
ProcessorType P1 Unterstützt Zeichenfolge Wird für Einstellungen verwendet, die auf dem Prozessortyp basieren.
ProcessorName P1 Unterstützt Zeichenfolge Wird für Zieleinstellungen verwendet, die auf dem Prozessornamen basieren.
AoAc („Always On, Always Connected“) P1 Unterstützt Boolesch Legen Sie den Wert auf 0 (false) oder 1 (true) fest. Wenn diese Bedingung TRUE ist, unterstützt das System das S0-Leerlaufmodell mit geringem Energieverbrauch.
PowerPlatformRole P1 Unterstützt Enumeration Gibt das bevorzugte Energieverwaltungsprofil an. Legen Sie den Wert auf Grundlage der POWER_PLATFORM_ROLE-Enumeration fest.
SocIdentifier P1 Unterstützt Zeichenfolge Verwenden Sie , um Einstellungen basierend auf dem Soc-Bezeichner als Ziel zu verwenden. Verfügbar seit der Buildversion des Betriebssystems 25301.
Architecture P1 Unterstützt Zeichenfolge Entspricht der Umgebungsvariablen PROCESSOR_ARCHITECTURE.
Server P1 Unterstützt Boolesch Legen Sie den Wert auf 0 (false) oder 1 (true) fest, um einen Server zu identifizieren.
Region P1 Unterstützt Enumeration Wird für Einstellungen basierend auf Land/Region verwendet, mit dem aus 2 Ziffern bestehenden Alpha-ISO-Code pro ISO 3166-1 alpha-2.
Lang P1 Unterstützt Enumeration Für Einstellungen basierend auf dem Sprachcode, mit dem aus 2 Ziffern bestehenden ISO 639 Alpha-2-Code.

Die im Windows-Client unterstützten übereinstimmenden Typen sind:

Abgleichstyp Syntax Beispiel
Exakte Übereinstimmung Der Abgleichstyp wird unverändert angegeben. <Condition Name="ProcessorName" Value="Barton" />
Übereinstimmung mit einem regulären Ausdruck (Regex) Dem Abgleichstyp wird das Präfix „Pattern:“ vorangestellt. <Condition Name="ProcessorName" Value="Pattern:. Celeron." />
Übereinstimmung mit numerischem Bereich Dem Abgleichstyp wird das Präfix „!Range:“ vorangestellt. <Condition Name="MNC" Value="!Range:400, 550" />

TargetState-Prioritäten

Sie können TargetState in einem Bereitstellungspaket mehrmals definieren, um Einstellungen auf Geräte anzuwenden, die mit Gerätebedingungen übereinstimmen. Wenn die Bereitstellungs-Engine jeden TargetState auswertet, können mehr als ein TargetState die aktuellen Gerätebedingungen erfüllen. Zum Bestimmen der Reihenfolge, in der Einstellungen angewendet werden, weist das System eine Priorität zu jedem TargetState zu.

Eine mit einem TargetState übereinstimmende Einstellung mit einer niedrigeren Priorität wird vor der Einstellung angewendet, die mit einem TargetState mit höherer Priorität übereinstimmt. Das bedeutet, dass eine Einstellung für TargetState mit höherer Priorität eine Einstellung für TargetState mit niedrigerer Priorität überschreiben kann.

Einstellungen, die mit mehreren TargetState mit gleicher Priorität übereinstimmen, werden gemäß der Reihenfolge angewendet, in der TargetState im Bereitstellungspaket definiert ist.

Die TargetState-Priorität wird basierend auf der Bedingungspriorität zugewiesen (siehe Bedingungstabelle für Prioritäten). Die Prioritätsauswertungsregeln lauten wie folgt:

  1. TargetState mit P0-Bedingungen ist wichtiger als TargetState ohne P0-Bedingungen.

  2. TargetState mit P0- und P1-Bedingungen ist wichtiger als TargetState mit P0-Bedingungen.

  3. Ein TargetState mit einer höheren Anzahl übereinstimmender P0-Bedingungen ist wichtiger als ein TargetState mit weniger übereinstimmenden P0-Bedingungen, unabhängig von der Anzahl der übereinstimmenden P1-Bedingungen.

  4. Wenn die Anzahl der übereinstimmenden P0-Bedingungen gleich ist, hat der TargetState mit den meisten übereinstimmenden P1-Bedingungen höhere Priorität.

  5. Wenn P0- und P1-Bedingungen gleichermaßen übereinstimmen, hat der TargetState mit der größten Gesamtanzahl an übereinstimmenden Bedingungen höchste Priorität.

Erstellen eines Bereitstellungspakets mit multivarianten Einstellungen

Gehen Sie folgendermaßen vor, um ein Bereitstellungspaket mit multivarianten Einstellungen zu erstellen.

  1. Erstellen Sie ein Bereitstellungspaket, und konfigurieren Sie die Anpassungen, die Sie bei bestimmten Bedingungen anwenden möchten. Weitere Informationen finden Sie unter Erstellen eines Bereitstellungspakets.

  2. Nachdem Sie die Einstellungen konfiguriert haben, speichern Sie das Projekt.

  3. Öffnen Sie den Projektordner, und kopieren Sie die Datei „customizations.xml“ an einen beliebigen lokalen Speicherort.

  4. Verwenden Sie einen XML- oder Text-Editor, um die Datei „customizations.xml“ zu öffnen.

    Die Datei „customizations.xml“ enthält die Paketmetadaten (einschließlich des Paketbesitzers und -rangs) und die Einstellungen, die Sie bei der Erstellung des Bereitstellungspakets konfiguriert haben. Der Knoten Customizations der Datei enthält einen Abschnitt Common, in dem die Anpassungseinstellungen enthalten sind.

    Im Folgenden ist der Inhalt einer „customizations.xml“-Beispieldatei dargestellt.

    <?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. Bearbeiten Sie die Datei „customizations.xml“, um einen Abschnitt Targets zu erstellen und die Bedingungen zur Behandlung multivarianter Einstellungen zu beschreiben.

    Das folgende Beispiel zeigt die Datei „customizations.xml“. Sie wurde geändert und enthält mehrere Bedingungen, einschließlich ProcessorName, ProcessorType, MCC und MNC.

    <?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. Erstellen Sie in der Datei „customizations.xml“ für die anzupassenden Einstellungen einen Abschnitt Variant. Gehen Sie dazu wie folgt vor:

    a. Definieren Sie ein untergeordnetes TargetRefs-Element.

    b. Definieren Sie innerhalb des TargetRefs-Elements ein TargetRef-Element. Sie können mehrere TargetRef-Elemente für jede Id definieren, die Sie auf benutzerdefinierte Einstellungen anwenden müssen.

    c. Verschieben Sie kompatible Einstellungen aus dem Abschnitt Common in den Abschnitt Variant.

    Wenn eines der TargetRef-Elemente mit Target übereinstimmt, werden alle Einstellungen in Variant angewendet.

    Hinweis

    Sie können mehrere Variant-Abschnitte definieren. Einstellungen im Abschnitt Common werden immer bei jedem auslösenden Ereignis angewendet.

    Das folgende Beispiel zeigt die Datei „customizations.xml“. Sie wurde mit einem Abschnitt Variant und den verschobenen Einstellungen aktualisiert, die angewendet werden, wenn die Bedingungen für die Variante zutreffen.

    <?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. Speichern Sie die aktualisierte Datei „customizations.xml“, und notieren Sie den Pfad zu dieser aktualisierten Datei. Sie benötigen den Pfad als einen der Werte für den nächsten Schritt.

  8. Verwenden Sie die Windows ICD-Befehlszeilenschnittstelle, um ein Bereitstellungspaket mit der aktualisierten Datei „customizations.xml“ zu erstellen.

    Beispiel:

    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"
    

In diesem Beispiel entspricht StoreFile dem Speicherort des Einstellungsspeichers, der zum Erstellen des Pakets für die erforderliche Windows-Edition verwendet wird.

Hinweis

Das in diesem Schritt erstellte Bereitstellungspaket enthält die multivarianten Einstellungen. Sie können dieses Paket als eigenständiges Paket verwenden, das Sie auf ein Windows-Gerät anwenden, oder als Basis, wenn Sie ein weiteres Projekt starten.

Ereignisse, die Bereitstellung auslösen

Wenn Sie das multivariante Bereitstellungspaket auf einem Windows-Clientgerät installieren, wendet das Bereitstellungsmodul die übereinstimmenden Bedingungseinstellungen bei jedem Ereignis an und löst die Bereitstellung aus.

Die folgenden Ereignisse lösen die Bereitstellung auf Windows-Clientgeräten aus:

Ereignis Windows-Client für Desktopeditionen
Systemstart Unterstützt
Betriebssystemaktualisierung Geplant
Paketinstallation während der ersten Ausführung des Geräts Unterstützt
Erkennung von SIMs oder SIM-Updates Unterstützt
Paketinstallation zur Laufzeit Unterstützt
Roamingerkennung Nicht unterstützt.