Создание пакета подготовки с многовариантными параметрами

В вашей организации могут быть различные требования к конфигурации для устройств, которыми вы управляете. Вы можете создать отдельные пакеты подготовки для каждой группы устройств в вашей организации, которые имеют различные требования. Или вы можете создать пакет подготовки с многовариантными параметрами — один пакет подготовки, который будет работать для нескольких условий. Например, в одном пакете подготовки можно определить один набор параметров настройки, которые применяются к устройствам, настроенным для французского языка, и другой набор параметров настройки для устройств, настроенных для японского языка.

Для подготовки многовариантных параметров используйте конструктор конфигураций Windows для создания пакета подготовки, который содержит все параметры настройки, которые вы хотите применить для какого-либо устройства. Затем вручную измените XML-файл для данного проекта, чтобы определить каждый набор устройств ( Target). Для каждого элемента Target необходимо указать хотя бы одно условие Condition со значением, которое определяет устройства для получения конфигурации. Наконец, для каждого элемента Target следует предоставить параметры настройки, которые необходимо применить для этих устройств.

Приступим, прочитав о том, как определить Target.

Target

В XML-файле предоставьте Id или понятное имя для каждого элемента Target. Каждый Target определяется по крайней мере одним TargetState, который содержит по крайней мере одно условие Condition. Элемент Condition определяет тип соответствия между условием и заданным значением.

A элемент Target может иметь несколько TargetState, а TargetState может иметь несколько элементов Condition.

Целевой объект с несколькими целевыми состояниями и условиями.

В следующих сведениях описывается логика определения целевого объекта:

  • Если все элементы Condition имеют значение TRUE, TargetState имеет значение TRUE:

    Целевое состояние имеет значение true, если выполняются все условия.

  • Если какой-либо из элементов TargetState имеет значение TRUE, target имеет значение TRUE, а идентификатор можно использовать для настройки настроек:

    Целевой объект имеет значение true, если любое состояние целевого объекта имеет значение true

Условия

В следующей таблице показаны условия, поддерживаемые при подготовке клиента Windows для TargetState.

Имя условия Приоритет условия Клиент Windows для классических выпусков Тип значения Описание значения
Код MNC P0 Поддерживается Строка цифр Используйте для назначения параметров на основе кода мобильной сети (MNC).
Код MCC P0 Поддерживается Строка цифр Используйте для назначения параметров на основе мобильного кода страны (MCC).
Имя поставщика услуг P0 Поддерживается Строка Используйте для назначения параметров на основе имени поставщика услуг (SPN).
Сетевое имя PNN P0 Поддерживается Строка Используйте для назначения параметров на основе сетевого имени зоны покрытия (PLMN).
GID1 P0 Поддерживается Строка цифр Используйте для назначения параметров на основе идентификатора группы (уровень 1).
Идентификатор ICCID P0 Поддерживается Строка цифр Используйте для назначения параметров на основе идентификатора микропроцессорной карточки (ICCID).
Roaming (Роуминг) P0 Н/Д Boolean (Логическое) Используйте для определения роуминга. Задайте для параметра значение 1 (перемещение) или 0 (без перемещения).
UICC P0 Н/Д Enumeration (Перечисление) Используйте для определения состояния универсальной карты с интегральной схемой (UICC). Задайте одно из следующих значений:
0 — пусто
1 — готово
2 — заблокировано
Разъем UICCSLOT P0 Н/Д Строка цифр Используйте для определения разъема UICC. Задайте одно из следующих значений:
0 — слот 0
1 — слот 1
ProcessorType (Тип процессора) P1 Поддерживается Строка Используйте для назначения параметров на основе типа процессора.
ProcessorName (Имя процесса) P1 Поддерживается Строка Используйте для назначения параметров на основе имени процессора.
AoAc ("Всегда включен, всегда на связи") P1 Поддерживается Boolean (Логическое) Задайте значение 0 (false) или 1 (true). Если это условие имеет значение TRUE, система поддерживает модель простоя S0 для пониженного энергопотребления.
PowerPlatformRole P1 Поддерживается Enumeration (Перечисление) Обозначает основной профиль управления питанием. Задайте значение на основе перечисления POWER_PLATFORM_ROLE.
SocIdentifier P1 Поддерживается Строка Используйте для назначения параметров на основе идентификатора Soc. Доступно с версии сборки ОС 25301.
Architecture (Архитектура) P1 Поддерживается Строка Соответствует переменной среды PROCESSOR_ARCHITECTURE.
Server (Сервер) P1 Поддерживается Boolean (Логическое) Задайте значение 0 (false) или 1 (true), чтобы определить сервер.
Регион P1 Поддерживается Enumeration (Перечисление) Используйте для определения параметров на основе региона, используя двухзначный альфа-код ISO в соответствии с ISO 3166-1 alpha-2.
Lang (Язык) P1 Поддерживается Enumeration (Перечисление) Используйте для определения параметров на основе кода языка, используя двухзначный код ISO 639 alpha-2.

В клиенте Windows поддерживаются следующие типы сопоставления:

Тип соответствия Синтаксис Пример
Прямое соответствие Тип соответствия указывается, как есть <Condition Name="ProcessorName" Value="Barton" />
Соответствие регулярных выражений (regex) Соответствующий тип имеет префикс 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 назначается в зависимости от приоритета условий (см. раздел Таблица условий для приоритетов). Правила оценки приоритета приведены ниже.

  1. Элемент TargetState с условиями P0 имеет более высокий приоритет, чем TargetState без условий P0.
  2. Элемент TargetState с условиями P0 и P1 имеет более высокий приоритет, чем TargetState только с условиями P0.
  3. ЭлементTargetState с большим числом соответствующих условий P0 имеет более высокий приоритет, чем TargetState с меньшим количеством подходящих условий P0, независимо от числа соответствующих условий P1.
  4. Если количество сопоставленных условий P0 эквивалентно, то TargetState с наиболее подходящими условиями P1 имеет более высокий приоритет.
  5. При равном выполнении условий P0 и P1 TargetState с наибольшим общим количеством соответствующих условий имеет наивысший приоритет.

Создание пакета подготовки с многовариантными параметрами

Выполните следующие действия, чтобы создать пакет подготовки с многовариантными возможностями.

  1. Выполните построение пакета подготовки и настройте параметры, которые нужно применять при определенных условиях. Дополнительные сведения см. в разделе Создание пакета подготовки.

  2. После настройки параметров сохраните проект.

  3. Откройте папку проекта и скопируйте файл customizations.xml в любое расположение.

  4. Для открытия файла customizations.xml используйте редактор 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, чтобы создать раздел Целевые объекты , чтобы описать условия, обрабатывающие многовариантные параметры.

    В следующем примере показан customizations.xml, который изменяется для включения нескольких условий, включая ProcessorName, ProcessorType, MCC и 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. В файле customizations.xml создайте раздел Variant для параметров, которые нужно настроить. Выполните указанные ниже действия.

    а. Определите дочерний элемент TargetRefs. б. В элементе TargetRefs определите элемент TargetRef. Можно определить несколько элементов TargetRef для каждого элемента Id, которые нужно применить к настроенным параметрам. в. Переместите совместимые параметры из раздела Common в раздел Variant.

    Если какой-либо из элементов TargetRef совпадает с элементом Target, применяются все параметры в разделе Variant.

    Примечание.

    Можно определить несколько разделов Variant. Параметры, расположенные в разделе Common, применяются безусловно при каждом запускающем событии.

    В следующем примере показан customizations.xml, обновленный для включения раздела Variant и перемещаемых параметров, применяемых при выполнении условий для варианта.

    <?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 и запишите путь к этому обновленному файлу. Вам потребуется путь в качестве одного из значений для следующего шага.

  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-карты или обновления Поддерживается
Установка пакета во время выполнения Поддерживается
Обнаружение роуминга Не поддерживается.