다중 변형 설정이 있는 프로비전 패키지 만들기
조직에서 관리하는 디바이스에 대한 다양한 구성 요구 사항이 있을 수 있습니다. 요구 사항이 다른 조직의 각 디바이스 그룹에 대한 별도의 프로비전 패키지를 만들 수 있습니다. 또는 여러 조건에서 작동하는 단일 프로비전 패키지인 다중 변형 프로비전 패키지를 만들 수 있습니다. 예를 들어 단일 프로비저닝 패키지에서 프랑스어로 설정된 디바이스에 적용되는 하나의 사용자 지정 설정 집합과 일본어로 설정된 디바이스에 대한 다른 사용자 지정 설정 집합을 정의할 수 있습니다.
다중 변형 설정을 프로비전하려면 Windows 구성 디자이너를 사용하여 모든 디바이스에 적용할 사용자 지정 설정이 포함된 프로비전 패키지를 만듭니다. 그런 다음 해당 프로젝트의 .XML 파일을 수동으로 편집하여 디바이스(대상)의 각 설정 집합을 정의합니다. 구성을 수신할 디바이스를 식별할 수 있도록 각 대상에 대해 값이 포함된 조건을 하나 이상 지정합니다. 마지막으로 각 대상에 대해 해당 디바이스에 적용할 사용자 지정 설정을 제공합니다.
먼저 대상을 정의하는 방법부터 살펴보겠습니다.
대상
XML 파일에서 각 대상의 Id 또는 이름을 입력합니다. 각 대상은 하나 이상의 조건이 포함된 하나 이상의 TargetState를 통해 정의됩니다. Condition 요소는 조건과 지정된 값 사이의 일치 유형을 정의합니다.
대상은 둘 이상의 TargetState를 가질 수 있고 TargetState는 둘 이상의 조건을 가질 수 있습니다.
다음 정보는 대상 정의에 대한 논리를 설명합니다.
모든 Condition 요소가 TRUE이면 TargetState 는 TRUE입니다.
TargetState 요소가 TRUE이면 Target은 TRUE이고 ID는 사용자 지정을 설정하는 데 사용할 수 있습니다.
조건
다음 표에서는 TargetState에 대한 Windows 클라이언트 프로비저닝에서 지원되는 조건을 보여줍니다.
조건 이름 | 조건 우선 순위 | 데스크톱 버전용 Windows 클라이언트 | 값 유형 | 값 설명 |
---|---|---|---|---|
MNC | P0 | 지원됨 | 자리 문자열 | MNC(모바일 네트워크 코드) 값에 따른 대상 설정에 사용합니다. |
MCC | P0 | 지원됨 | 자리 문자열 | MCC(모바일 국가 코드) 값에 따른 대상 설정에 사용합니다. |
SPN | P0 | 지원됨 | 문자열 | SPN(서비스 공급자 이름) 값에 따른 대상 설정에 사용합니다. |
PNN | P0 | 지원됨 | 문자열 | PLMN(공용 지상 모바일 네트워크) 네트워크 이름 값에 따른 대상 설정에 사용합니다. |
GID1 | P0 | 지원됨 | 자리 문자열 | 그룹 식별자(수준 1) 값에 따른 대상 설정에 사용합니다. |
ICCID | P0 | 지원됨 | 자리 문자열 | ICCID(통합 서킷 카드 식별자) 값에 따른 대상 설정에 사용합니다. |
Roaming | P0 | 해당 없음 | 부울 | 로밍 지정에 사용합니다. 값을 1 (로밍) 또는 0 (비로밍)으로 설정합니다. |
UICC | P0 | 해당 없음 | 열거형 | UICC(유니버설 통합 회로 카드) 상태를 지정하는 데 사용합니다. 값을 다음 값 중 하나로 설정합니다. 0 - 비어 있음 1 - 준비 완료 2 - 잠김 |
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)로 설정하여 서버를 식별합니다. |
지역 | P1 | 지원됨 | 열거형 | ISO 3166-1 alpha-2당 두 자리 알파 ISO 코드를 사용하여 지역을 기반으로 설정을 대상으로 지정합니다. |
Lang | P1 | 지원됨 | 열거형 | 두 자리 ISO 639 alpha-2 코드를 사용하여 언어 코드를 기반으로 설정을 대상으로 지정합니다. |
Windows 클라이언트에서 지원되는 일치 형식은 다음과 같습니다.
일치 유형 | 구문 | 예 |
---|---|---|
Straight 일치 | 일치 유형이 있는 그대로 지정됨 | <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 우선 순위는 조건의 우선 순위에 따라 할당됩니다(우선 순위에 대한 조건표 참조). 우선 순위 평가 규칙은 다음과 같습니다.
- P0 조건이 있는TargetState는 P0 조건이 없는 TargetState보다 높습니다.
- P0 및 P1 조건이 모두 있는 TargetState는 P0 조건만 있는 TargetState보다 높습니다.
- 일치하는 P1 조건의 수에 관계없이 일치하는 P0 조건이 더 많은 TargetState는 일치하는 P0 조건이 더 적은 TargetState보다 높습니다.
- 일치하는 P0 조건 수가 동일한 경우 가장 일치하는 P1 조건이 있는 TargetState 의 우선 순위가 높습니다.
- P0 및 P1 조건이 동일하게 일치하면 일치하는 총 조건 수가 가장 많은 TargetState에 가장 높은 우선 순위가 부여됩니다.
다중 변형 설정이 있는 프로비전 패키지 만들기
다중 변형 기능으로 프로비전 패키지를 만들려면 다음 단계를 따릅니다.
프로비전 패키지를 빌드하고 특정 조건에서 적용할 사용자 지정을 구성합니다. 자세한 내용은 프로비전 패키지 만들기를 참조하세요.
설정을 구성한 후 프로젝트를 저장합니다.
프로젝트 폴더를 열고 customizations.xml 파일을 아무 로컬 위치로 복사합니다.
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>
customizations.xml 파일을 편집하여 다변량 설정을 처리하는 조건을 설명하는 대상 섹션을 만듭니다.
다음 예제에서는 ProcessorName, ProcessorType, MCC 및 MNC를 비롯한 여러 조건을 포함하도록 수정된 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>
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>
업데이트된 customizations.xml 파일을 저장하고 이 업데이트된 파일의 경로를 기록합니다. 다음 단계의 값 중 하나로 경로가 필요합니다.
업데이트된 customizations.xml을 사용하여 프로비저닝 패키지를 만들려면 Windows 구성 디자이너 명령줄 인터페이스를 사용합니다.
예를 들면 다음과 같습니다.
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 클라이언트 디바이스에서 프로비저닝을 트리거합니다.
Event | 데스크톱 버전용 Windows 클라이언트 |
---|---|
시스템 부팅 | 지원됨 |
운영 체제 업데이트 | 예정 |
장치가 처음으로 실행되는 동안 패키지 설치 | 지원됨 |
SIM 감지 또는 업데이트 | 지원됨 |
런타임에 패키지 설치 | 지원됨 |
검색된 로밍 | 지원되지 않음 |