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

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

Для подготовки многовариантных параметров используйте конструктор конфигураций Windows для создания пакета подготовки, который содержит все параметры настройки, которые вы хотите применить для какого-либо устройства. Затем вручную измените XML-файл для данного проекта, чтобы определить каждый набор устройств ( Target). Для каждого элемента Target необходимо указать хотя бы одно условие Condition со значением, которое определяет устройства для получения конфигурации. Наконец, для каждого элемента 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 - Empty
- 1 - Ready
- 2 - Locked
Разъем 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 (Перечисление) Используйте для назначения параметров на основе страны или региона с помощью 2-значного альфа-кода ISO для кода альфа-2 ISO 3166-1.
Lang (Язык) P1 Поддерживается Enumeration (Перечисление) Используйте для назначения параметров на основе кода языка с помощью 2-значного кода альфа-2 ISO 639 .

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

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

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