mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-06-26 07:43:36 +00:00
Squashed commit of the following:
commit 9f95be92f864acf6a9cef8121e9d7c5b02f18da6 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 13:28:40 2017 -0800 fix table commit eaaf7927d163b4fb3eb89f2e9e3b2de367be8ea0 Merge: c53bbe2cf11083
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 13:19:19 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit c53bbe240c88573cacdbfd424b2549ff895b2263 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 09:06:46 2017 -0800 sync commit 2db82b374821d5e57224f3492c4fdcf68a8d7c36 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:57:23 2017 -0800 sync commit a3fd8ad3d9d909e98332252e702e31496bb53cf0 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:49:41 2017 -0800 sync commit de0b46958e5783d0edb31c916f45f45118f9cd2f Merge: c80779fdeb778a
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:49:00 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit c80779f75b34ccd0c6772b695332f667d90aa760 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:48:10 2017 -0800 fix code block commit 24a001bff7cf3c0451195a094f063a80f61450e0 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:44:48 2017 -0800 fix link commit 574411a38d113a974a5c406746a06f629cdb50c0 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:38:57 2017 -0800 fix links, format commit 5e106b72f679243b0c601146277b66f9045c26f9 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:25:17 2017 -0800 fix format commit 6c693cee1a305955fcb3b711f393ed695e51e96f Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 08:11:09 2017 -0800 tweak apply commit 501e1100d08b21a107a6d55f335edad08620250d Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 07:44:01 2017 -0800 moved apply procs, learn more links commit 17c18a8970ccff5f11239031188a9f7a4f59f8f7 Merge: 3c8007537bf478
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 18 07:38:50 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 3c80075ab12e4ced0134c3ad02f7de7e0ec0c24d Merge: 4b77100a4496a2
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 15:37:33 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 4b771007b71692959676a4290492af0ea7375c2d Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 15:35:26 2017 -0800 missing intro commit 7c5406e213c5a84497352fb76ef491d53a1ecf74 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 15:30:05 2017 -0800 add related links commit deacc390e081365fc4be0509fc4a4b016fbe3734 Merge: d62ca20a3fba4c
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 14:29:29 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit d62ca20830be9ce1afae4deba12c6688c591554c Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 14:27:56 2017 -0800 escaped < > commit dd2e558fd6e9cb38ecba49cb0d2d4ea08d5a53ae Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 14:14:01 2017 -0800 multivariant commit 668cdc313f47565f1275261496db748975d2b5b1 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 13:23:41 2017 -0800 update change deploy commit 1b5070b0f8bdbbe2e8d53c84173d0f0818bc1b30 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 13:21:51 2017 -0800 resolve conflict change history manage commit 8e342df4125216b4fa802204cb26441b1ecf63df Merge: 031f50b9793669
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 13:20:28 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 031f50b5ee684a048c34e6cf297149343585ec69 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 13:17:33 2017 -0800 tweak commit 54e2eb787d78c3a680e4c54e63b99e06a293fc39 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 11:15:51 2017 -0800 tweak table commit 4dc33fb1898f168b1bf59a127f7317e1df5ab4ef Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 11:02:33 2017 -0800 cli commit 755758d424f92bb0e8f42281310d9855aaaba4d6 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 10:56:38 2017 -0800 new topics commit 0711e5571a34788a5402c3e35a522341f1bf68b5 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 10:08:03 2017 -0800 update how it works commit 210680ebf086e973ab06b9d7cf35768efa3fd6c4 Merge: eeec810a171f82
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 09:17:08 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit eeec8100536b249aec154852d0879a81e9d07dda Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 17 09:16:38 2017 -0800 reorder how it works commit ed862463fc83d9f46ed8081cc3166d3bf123aa21 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 14:26:43 2017 -0800 sync commit 8abd729805cb0719104a118529f037effa197457 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 13:44:26 2017 -0800 moved sections between topics commit fad95aa31de0a9e621338751671c499779fb362e Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 13:21:36 2017 -0800 sync commit efb848b257da63dd7b84e2e8edb12139f54e3dc1 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 12:53:53 2017 -0800 reorg apply commit 1a98b619c49c4cda9ab673247ba80771c9519251 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 12:42:00 2017 -0800 finish create commit 0ec9ade931ab3b74fddf0bbc25cd1d986ad382ed Merge: f169e9244e62eb
Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 12:41:30 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit f169e92adea1d42a21c0844a6f109d5e632cdc08 Merge: 0f182c8110241e
Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 12:06:04 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 0f182c8e9af068d65b29851b8569c5518707d773 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 11:25:52 2017 -0800 switch commit 351ab3a2b1d81481a4b760c65fbd33d36e7c9089 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 09:55:25 2017 -0800 updates to install commit 5b01085b0b961512fa891a171330967c9f4f7657 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 09:36:06 2017 -0800 sync commit 837f0a902fa66cc07f83b93b3f66cbc160d09fc6 Author: jdeckerMS <jdecker@microsoft.com> Date: Fri Jan 13 08:58:22 2017 -0800 sync commit 2d8a29cb97b3f16dd0bb2d664ad9cdd11123b5ae Merge: ad8151cc564f3e
Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 12:51:13 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit ad8151c775a18bcec03d41631c6c43d1b2fabb28 Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 12:50:30 2017 -0800 sync commit 514161581723808a2ed5c29b24a3dcfd28901b78 Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 12:03:30 2017 -0800 remove graphic commit 8d4ab1471d1f8d2c5d3a28cab73e860dd0e25e7c Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 11:58:23 2017 -0800 sync commit 3147720b7edc492b93aa8def7ca94bec4f54b74b Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 11:45:07 2017 -0800 fix format commit 67fa6473648c45b4b9ff31d506bd9485b67a9760 Merge: 999550324803cd
Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 11:43:21 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 9995503434d09fcbae73510ee0aec6123bc1a6f8 Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 10:36:33 2017 -0800 add links commit 3e725b83f60c2ce06e043f704d4dbb86e7064ec8 Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 10:34:16 2017 -0800 sync commit d40be4b40ecff550e9ccf0f022609e81142fc923 Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 09:02:52 2017 -0800 add topic commit 010b2f64320a02857b189493e7e71934f8030c11 Merge: 639e54e7519b87
Author: jdeckerMS <jdecker@microsoft.com> Date: Thu Jan 12 08:26:45 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 639e54e4525c4cc0b79b770e8e81b07574e032cc Merge: 79a7ee097b8484
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 14:33:39 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 79a7ee0597a4198a5be098cafe960c23b5f2f88b Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 14:33:08 2017 -0800 sync commit ca313243bfc7cd9ac81c623eeafbe60fc2e6ce1d Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 13:17:04 2017 -0800 add art commit 938e50ca5db8304e7e44d040fd9e6c25ef3d402f Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 12:40:47 2017 -0800 mobile commit 0552360320664f8f61a73eed5212a8f476d27f2f Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 11:38:56 2017 -0800 complete desktop commit b3cea45101b03d0a8ba79b916a3b8c2de0ad09b1 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 11:10:09 2017 -0800 format check commit 2271bd9206316c752d0634c3df93ff23c6a80abd Merge: 6a3478d8ef9050
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 10:44:20 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 6a3478d8ab1f113150de7dd5df89118c4915b947 Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 10:43:42 2017 -0800 sync changes commit 12964dabbbea4f1084d0396c956a23784a900f48 Merge: affb590ec7b776
Author: jdeckerMS <jdecker@microsoft.com> Date: Wed Jan 11 08:17:43 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit affb590262719ce7500292070c218d4b4f518c62 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 10 14:22:43 2017 -0800 related topics commit 0fb18bddbc1ec4c83f72b6d38159ed1d552d709f Merge: 58555e22cad77f
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 10 14:12:50 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 58555e2dac6e8ca95b9110436b4c601b6727e7d0 Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 10 12:00:52 2017 -0800 sync commit 4d107c68d6bbc27bc75ec714b844650a5eb1f678 Merge: 5d5216560611e5
Author: jdeckerMS <jdecker@microsoft.com> Date: Tue Jan 10 08:59:51 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 5d521654f1ae9233d7857fbde2ac0afb95f93f1e Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 14:06:10 2017 -0800 sync commit f21d6c41af1ef019cfe757b181fb757adee90ac3 Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 13:01:41 2017 -0800 metadata and uninstall content commit 81f8976b6e3a2306220948800541a413d866041b Merge: 9654e2bf81dbd0
Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 12:26:40 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 9654e2b3886249d4a6235b209c20bca4596fbf18 Merge: 47d6aa6310c015
Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 11:04:24 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit 47d6aa6ec8ebaaffa529066320c84635dd5a991e Merge: a9bc13cf33df1b
Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 09:59:28 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov commit a9bc13c733bb231306bc75512fae0c5882fd713e Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 09:58:57 2017 -0800 add topics commit 8797ae2c0a04bb776811701c2d0672ab457b2bba Merge:c053cb6
88cf4ee
Author: jdeckerMS <jdecker@microsoft.com> Date: Mon Jan 9 09:47:39 2017 -0800 Merge remote-tracking branch 'refs/remotes/origin/master' into jdprov
This commit is contained in:
322
windows/deploy/provisioning-multivariant.md
Normal file
322
windows/deploy/provisioning-multivariant.md
Normal file
@ -0,0 +1,322 @@
|
||||
---
|
||||
title: Create a provisioning package with multivariant settings (Windows 10)
|
||||
description: Create a provisioning package with multivariant settings to customize the provisioned settings.
|
||||
ms.prod: w10
|
||||
ms.mktglfcycl: deploy
|
||||
ms.sitesec: library
|
||||
author: jdeckerMS
|
||||
localizationpriority: high
|
||||
---
|
||||
|
||||
# Create a provisioning package with multivariant settings
|
||||
|
||||
|
||||
**Applies to**
|
||||
|
||||
- Windows 10
|
||||
- Windows 10 Mobile
|
||||
|
||||
Multivariant provisioning packages enable you to create a single provisioning package that can work for multiple locales.
|
||||
|
||||
To provision multivariant settings, you must create a provisioning package with defined **Conditions** and **Settings** that are tied to these conditions. When you install this package on a Windows 10 device, the provisioning engine applies the matching condition settings at every event and triggers provisioning.
|
||||
|
||||
The following events trigger provisioning on Windows 10 devices:
|
||||
|
||||
| Event | Windows 10 Mobile | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) |
|
||||
| --- | --- | --- |
|
||||
| System boot | Supported | Supported |
|
||||
| Operating system update | Supported | Planned |
|
||||
| Package installation during device first run experience | Supported | Supported |
|
||||
| Detection of SIM presence or update | Supported | Not supported |
|
||||
| Package installation at runtime | Supported | Supported |
|
||||
| Roaming detected | Supported | Not supported |
|
||||
|
||||
## Target, TargetState, Condition, and priorities
|
||||
|
||||
Targets describe keying for a variant and must be described or pre-declared before being referenced by the variant.
|
||||
|
||||
- You can define multiple **Target** child elements for each **Id** that you need for the customization setting.
|
||||
|
||||
- Within a **Target** you can define multiple **TargetState** elements.
|
||||
|
||||
- Within a **TargetState** element you can create multiple **Condition** elements.
|
||||
|
||||
- A **Condition** element defines the matching type between the condition and the specified value.
|
||||
|
||||
The following table shows the conditions supported in Windows 10 provisioning:
|
||||
|
||||
>[!NOTE]
|
||||
>You can use any of these supported conditions when defining your **TargetState**.
|
||||
|
||||
| Condition Name | Condition priority | Windows 10 Mobile | Windows 10 for desktop editions | Value type | Value description |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| MNC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Network Code (MNC) value. |
|
||||
| MCC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Country Code (MCC) value. |
|
||||
| SPN | P0 | Supported | N/A | String | Use to target settings based on the Service Provider Name (SPN) value. |
|
||||
| PNN | P0 | Supported | N/A | String | Use to target settings based on public land mobile network (PLMN) Network Name value. |
|
||||
| GID1 | P0 | Supported | N/A | Digit string | Use to target settings based on the Group Identifier (level 1) value. |
|
||||
| ICCID | P0 | Supported | N/A | Digit string | Use to target settings based on the Integrated Circuit Card Identifier (ICCID) value. |
|
||||
| Roaming | P0 | Supported | N/A | Boolean | Use to specify roaming. Set the value to **1** (roaming) or **0** (non-roaming). |
|
||||
| UICC | P0 | Supported | N/A | Enumeration | Use to specify the UICC state. Set the value to one of the following:</br></br></br>- 0 - Empty</br>- 1 - Ready</br>- 2 - Locked |
|
||||
| UICCSLOT | P0 | Supported | N/A | Digit string | Use to specify the UICC slot. Set the value one of the following:</br></br></br>- 0 - Slot 0</br>- 1 - Slot 1 |
|
||||
| ProcessorType | P1 | Supported | Supported | String | Use to target settings based on the processor type. |
|
||||
| ProcessorName | P1 | Supported | Supported | String | Use to target settings based on the processor name. |
|
||||
| AoAc | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. |
|
||||
| PowerPlatformRole | P1 | Supported | Supported | Enumeration | Indicates the preferred power management profile. Set the value based on the POWER_PLATFORM_ROLE enumeration. |
|
||||
| Architecture | P1 | Supported | Supported | String | Matches the PROCESSOR_ARCHITECTURE environment variable. |
|
||||
| Server | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. |
|
||||
| Region | P1 | Supported | Supported | Enumeration | Use to target settings based on country/region. |
|
||||
| Lang | P1 | Supported | Supported | Enumeration | Use to target settings based on language code. |
|
||||
| ROMLANG | P1 | Supported | N/A | Digit string | Use to specify the PhoneROMLanguage that's set for DeviceTargeting. This condition is used primarily to detect variants for China. For example, you can use this condition and set the value to "0804". |
|
||||
|
||||
The matching types supported in Windows 10 are:
|
||||
|
||||
| Matching type | Syntax | Example |
|
||||
| --- | --- | --- |
|
||||
| Straight match | Matching type is specified as-is | <Condition Name="ProcessorName" Value="Barton" /> |
|
||||
| Regex match | Matching type is prefixed by "Pattern:" | <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" /> |
|
||||
| Numeric range match | Matching type is prefixed by "!Range:" | <Condition Name="MNC" Value="!Range:400, 550" /> |
|
||||
|
||||
|
||||
- When all **Condition** elements are TRUE, **TargetState** is TRUE (**AND** logic).
|
||||
|
||||
- If any of the **TargetState** elements is TRUE, **Target** is TRUE (**OR** logic), and **Id** can be used for the setting customization.
|
||||
|
||||
|
||||
You can define more than one **TargetState** within a provisioning package to apply variant settings that match device conditions. When the provisioning engine evalues each **TargetState**, more than one **TargetState** may fit current device conditions. To determine the order in which the variant settings are applied, the system assigns a priority to every **TargetState**.
|
||||
|
||||
A variant setting that matches a **TargetState** with a lower priority is applied before the variant that matches a **TargetState** with a higher priority. Variant settings that match more than one **TargetState** with equal priority are applied according to the order that each **TargetState** is defined in the provisioning package.
|
||||
|
||||
The **TargetState** priority is assigned based on the conditions priority and the priority evaluation rules are as followed:
|
||||
|
||||
1. T**TargetState** with P0 conditions is higher than **TargetState** without P0 conditions.
|
||||
|
||||
|
||||
2. **TargetState** with P1 conditions is higher than **TargetState** without P0 and P1 conditions.
|
||||
|
||||
|
||||
3. If N₁>N₂>0, the **TargetState** priority with N₁ P0 conditions is higher than the **TargetState** with N₂ P1 conditions.
|
||||
|
||||
|
||||
4. For **TargetState** without P0 conditions, if N₁>N₂>0 **TargetState** with N₁ P1 conditions is higher than the **TargetState** with N₂ P1 conditions.
|
||||
|
||||
|
||||
5. For **TargetState** without P0 and P1 conditions, if N₁>N₂>0 **TargetState** priority with N₁ P2 conditions is higher than the **TargetState** with N₂ P2 conditions.
|
||||
|
||||
|
||||
6. For rules 3, 4, and 5, if N₁=N₂, **TargetState** priorities are considered equal.
|
||||
|
||||
|
||||
## Create a provisioning package with multivariant settings
|
||||
|
||||
Follow these steps to create a provisioning package with multivariant capabilities.
|
||||
|
||||
|
||||
1. Build a provisioning package and configure the customizations you need to apply during certain conditions. For more information, see [Create a provisioning package](provisioning-create-package.md).
|
||||
|
||||
|
||||
2. After you've [configured the settings](provisioning-create-package.md#configure-settings), save the project.
|
||||
|
||||
|
||||
3. Open the project folder and copy the customizations.xml file.
|
||||
|
||||
4. Use an XML or text editor to open the customizations.xml file.
|
||||
|
||||
The customizations.xml file holds the package metadata (including the package owner and rank) and the settings that you configured when you created your provisioning package. The Customizations node contains a Common section, which contains the customization settings.
|
||||
|
||||
The following example shows the contents of a sample customizations.xml file.
|
||||
|
||||
```XML
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WindowsCustomizatons>
|
||||
<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>
|
||||
</WindowsCustomizatons>
|
||||
```
|
||||
|
||||
4. Edit the customizations.xml file and create a **Targets** section to describe the conditions that will handle your multivariant settings.
|
||||
|
||||
The following example shows the customizations.xml, which has been modified to include several conditions including **ProcessorName**, **ProcessorType**, **MCC**, and **MNC**.
|
||||
|
||||
```XML
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WindowsCustomizatons>
|
||||
<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>
|
||||
</WindowsCustomizatons>
|
||||
```
|
||||
|
||||
5. In the customizations.xml file, create a **Variant** section for the settings you need to customize. To do this:
|
||||
|
||||
a. Define a child **TargetRefs** element.
|
||||
|
||||
b. Within the **TargetRefs** element, define a **TargetRef** element. You can define multiple **TargetRef** elements for each **Id** that you need to apply to customized settings.
|
||||
|
||||
c. Move compliant settings from the **Common** section to the **Variant** section.
|
||||
|
||||
If any of the TargetRef elements matches the Target, all settings in the Variant are applied (OR logic).
|
||||
|
||||
>[!NOTE]
|
||||
>You can define multiple Variant sections. Settings that reside in the **Common** section are applied unconditionally on every triggering event.
|
||||
|
||||
The following example shows the customizations.xml updated to include a **Variant** section and the moved settings that will be applied if the conditions for the variant are met.
|
||||
|
||||
```XML
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WindowsCustomizatons>
|
||||
<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>
|
||||
</WindowsCustomizatons>
|
||||
```
|
||||
|
||||
6. Save the updated customizations.xml file and note the path to this updated file. You will need the path as one of the values for the next step.
|
||||
|
||||
|
||||
7. Use the [Windows ICD command-line interface](provisioning-command-line.md) to create a provisioning package using the updated customizations.xml.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
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 this example, the **StoreFile** corresponds to the location of the settings store that will be used to create the package for the required Windows edition.
|
||||
|
||||
>[!NOTE]
|
||||
>The provisioning package created during this step will contain the multivariant settings. You can use this package either as a standalone package that you can apply to a Windows device or use it as the base when starting another project.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Related topics
|
||||
|
||||
- [Provisioning packages for Windows 10](provisioning-packages.md)
|
||||
- [How provisioning works in Windows 10](provisioning-how-it-works.md)
|
||||
- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md)
|
||||
- [Create a provisioning package](provisioning-create-package.md)
|
||||
- [Apply a provisioning package](provisioning-apply-package.md)
|
||||
- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md)
|
||||
- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md)
|
||||
- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md)
|
||||
- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md)
|
||||
- [NFC-based device provisioning](provisioning-nfc.md)
|
||||
- [Windows ICD command-line interface (reference)](provisioning-command-line.md)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user