ADMX 정책 이해

편의성이 향상되고 디바이스를 대상으로 지정할 수 있는 용이성으로 인해 엔터프라이즈 기업은 PC 관리를 클라우드 기반 디바이스 관리 솔루션으로 전환하는 것이 점점 더 유리해지고 있습니다. 아쉽게도 최신 Windows PC 디바이스 관리 솔루션에는 기존 PC 관리 솔루션에서 지원되는 중요한 정책 및 앱 설정 구성 기능이 부족합니다.

Windows 10 버전 1703부터 MDM(모바일 장치 관리) 정책 구성 지원이 확장되어 CSP(정책 구성 서비스 공급자)를 통해 Windows PC에 대해 선택한 ADMX 정책(그룹 정책 관리 템플릿) 집합에 액세스할 수 있습니다. 이렇게 확장된 액세스를 통해 기업은 디바이스를 규정을 준수하고 클라우드를 통해 관리되는 디바이스의 보안이 손상되는 위험을 방지할 수 있습니다.

Background

표준 MDM 정책 외에도 정책 CSP는 선택한 ADMX 정책 집합을 처리할 수도 있습니다. ADMX 정책에서 관리 템플릿은 Windows 그룹 정책 메타데이터를 포함하며 PC의 로컬 그룹 정책 편집기에서 편집할 수 있습니다. 각 관리 템플릿은 그룹 정책 연결된 레지스트리 키(및 해당 값)를 지정하고 관리할 수 있는 정책 설정을 정의합니다. 관리 템플릿은 계층 구조 경로의 각 세그먼트가 범주로 정의되는 계층 구조에서 그룹 정책을 구성합니다. 그룹 정책 관리 템플릿의 각 설정은 특정 레지스트리 값에 해당합니다. 이러한 그룹 정책 설정은 ADMX 파일이라고 하는 표준 기반 XML 파일 형식으로 정의됩니다. 자세한 내용은 그룹 정책 ADMX 구문 참조 가이드를 참조하세요.

ADMX 파일은 Windows 함께 제공되는 운영 체제(OS) 그룹 정책을 설명하거나 OS와 별개이며 일반적으로 PC에 다운로드하여 설치할 수 있는 애플리케이션 설정을 설명할 수 있습니다. OS 또는 애플리케이션에서 제어하는 설정의 특정 범주에 따라 관리 템플릿 설정은 로컬 그룹 정책 편집기의 다음 두 위치에서 찾을 수 있습니다.

  • OS 설정: 컴퓨터 구성/관리 템플릿
  • 애플리케이션 설정: 사용자 구성/관리 템플릿

도메인 컨트롤러/그룹 정책 에코시스템에서 그룹 정책은 클라이언트 컴퓨터가 그룹 정책 처리할 때마다 관리 템플릿 CSE(클라이언트 쪽 확장)에 의해 클라이언트 컴퓨터 또는 사용자 프로필의 레지스트리에 자동으로 추가됩니다. 반대로 MDM 관리 클라이언트에서 ADMX 파일은 그룹 정책과 무관하게 정책을 정의하기 위해 적용됩니다. 따라서 MDM 관리 클라이언트에서는 그룹 정책 서비스(gpsvc.exe)를 포함한 그룹 정책 인프라가 필요하지 않습니다.

ADMX 파일은 Windows(위치%SystemRoot%\policydefinitions)와 함께 제공되거나 정책 CSP URI(./Vendor/MSFT/Policy/ConfigOperations/ADMXInstall)를 통해 디바이스에 수집될 수 있습니다. 받은 편지함 ADMX 파일은 OS 빌드 시 MDM 정책으로 처리됩니다. 수집되는 ADMX 파일은 정책 CSP를 통해 OS 후 배송 MDM 정책으로 처리됩니다. 정책 CSP는 PC의 GPSvc(그룹 정책 Service)를 포함하여 그룹 정책 클라이언트 스택의 어떤 측면도 사용하지 않으므로 디바이스에 수집되는 정책 처리기는 MDM에서 설정한 정책에 대응할 수 있습니다.

Windows 연결된 ADMX 파일을 구문 분석하고, 지정된 그룹 정책 찾고, 정의(메타데이터)를 MDM 정책 CSP 클라이언트 저장소에 저장하여 그룹 정책 이름과 범주 경로를 MDM 정책 영역 및 정책 이름에 매핑합니다. SyncML 명령 및 정책 CSP URI .\[device|user]\vendor\msft\policy\[config|result]\<area>\<policy>에서 MDM 정책을 참조하는 경우 이 메타데이터가 참조되고 설정 또는 제거되는 레지스트리 키를 결정합니다. MDM에서 지원하는 ADMX 정책 목록은 정책 CSP - ADMX 정책을 참조하세요.

ADMX 파일 및 그룹 정책 편집기

ADMX 그룹 정책의 엔드투엔드 MDM 처리를 캡처하려면 IT 관리자가 그룹 정책 편집기(gpedit.msc)와 같은 UI를 사용하여 필요한 데이터를 수집해야 합니다. MDM ISV 콘솔 UI는 IT 관리자로부터 필요한 그룹 정책 데이터를 수집하는 방법을 결정합니다. ADMX 그룹 정책은 계층 구조로 구성되며 컴퓨터, 사용자 또는 둘 다의 범위를 가질 수 있습니다. 다음 섹션의 그룹 정책 예제에서는 "Publishing Server 2 설정"라는 컴퓨터 차원의 그룹 정책 사용합니다. 이 그룹 정책 선택하면 사용 가능한 상태가 구성되지 않음, 사용 및 사용 안 함 상태가 됩니다.

MDM ISV가 IT 관리자에게 표시할 UI를 결정하는 데 사용하는 ADMX 파일은 클라이언트가 정책 정의에 사용하는 것과 동일한 ADMX 파일입니다. ADMX 파일은 빌드 시 OS에서 처리되거나 OS 런타임에 클라이언트가 설정합니다. 두 경우 모두 클라이언트와 MDM ISV를 ADMX 정책 정의와 동기화해야 합니다. 각 ADMX 파일은 그룹 정책 범주에 해당하며 일반적으로 단일 그룹 정책 나타내는 여러 정책 정의를 포함합니다. 예를 들어 "Publishing Server 2 설정"에 대한 정책 정의는 Appv.admx 파일에 포함되며, 이 파일은 App-V(Microsoft Application Virtualization) 그룹 정책 범주에 대한 정책 정의를 포함합니다.

그룹 정책 옵션 단추 설정:

  • 사용이 선택되면 UI에서 사용자에게 필요한 데이터 입력 컨트롤이 표시됩니다. IT 관리자가 데이터를 입력하고 적용을 클릭하면 다음 이벤트가 발생합니다.

    • MDM ISV 서버는 사용자가 입력한 데이터를 포함하는 페이로드로 SyncML 바꾸기 명령을 설정합니다.
    • MDM 클라이언트 스택은 이 데이터를 수신하므로 정책 CSP는 ADMX 정책 정의에 따라 디바이스의 레지스트리를 업데이트합니다.
  • 사용 안 함으로 선택하고 적용을 클릭하면 다음 이벤트가 발생합니다.

    • MDM ISV 서버는 페이로드가 로 설정된 <disabled\>SyncML 바꾸기 명령을 설정합니다.
    • MDM 클라이언트 스택은 정책 CSP가 디바이스의 레지스트리 설정을 삭제하거나, 레지스트리 키를 설정하거나, ADMX 정책 정의가 지시하는 상태 변경에 따라 둘 다 설정하도록 하는 이 명령을 받습니다.
  • 구성되지 않은 항목을 선택하고 적용을 클릭하면 다음 이벤트가 발생합니다.

    • MDM ISV 서버는 SyncML 삭제 명령을 설정합니다.
    • MDM 클라이언트 스택은 이 명령을 수신하므로 정책 CSP는 ADMX 정책 정의에 따라 디바이스의 레지스트리 설정을 삭제합니다.

다음 다이어그램에서는 그룹 정책 편집기 기본 디스플레이를 보여 옵니다.

그룹 정책 편집기.

다음 다이어그램은 그룹 정책 편집기에서 "게시 서버 2 설정" 그룹 정책 대한 설정을 보여줍니다.

게시자 서버 2 설정을 그룹 정책.

대부분의 그룹 정책은 간단한 부울 형식입니다. 부울 그룹 정책 대해 [사용]을 선택하면 옵션 패널에 데이터 입력 필드가 없고 SyncML의 페이로드가 간단히 <enabled/>표시됩니다. 그러나 옵션 패널에 데이터 입력 필드가 있는 경우 MDM 서버에서 이 데이터를 제공해야 합니다. 다음 그룹 정책 사용 예제에서는 이러한 복잡성을 보여 줍니다. 이 예제에서는 "게시 서버 2 설정" 그룹 정책 대한 그룹 정책 편집기 옵션 패널의 데이터 입력 필드 10개에 해당하는 페이로드의 태그로 10개의 이름-값 쌍을 설명 <data /> 합니다. 그룹 정책을 정의하는 ADMX 파일은 그룹 정책 편집기에서 사용하는 방법과 비슷하게 MDM 서버에서 사용합니다. 그룹 정책 편집기에서는 MDM 서버의 IT 관리자 콘솔에서도 수행해야 하는 전체 그룹 정책 인스턴스 데이터를 수신하는 UI를 표시합니다. ADMX 정책 정의의 모든 <text> 요소 및 ID 특성에 대해 페이로드에 해당 <data /> 요소 및 ID 특성이 있어야 합니다. ADMX 파일은 정책 정의를 구동하며 SyncML 프로토콜을 통해 MDM 서버에 필요합니다.

중요

그룹 정책 편집기의 그룹 정책 페이지에 표시되는 모든 데이터 입력 필드는 SyncML 페이로드의 인코딩된 XML에 제공해야 합니다. SyncML 데이터 페이로드는 GPEdit.msc를 통해 사용자가 제공한 그룹 정책 데이터와 동일합니다.

그룹 정책 설명 형식에 대한 자세한 내용은 ADMX(관리 템플릿 파일) 형식을 참조하세요. 요소는 Text, MultiText, Boolean, Enum, Decimal 또는 List일 수 있습니다(자세한 내용은 정책 요소 참조).

예를 들어 appv.admx 파일에서 정책 사용 예제와 해당 ADMX 정책 정의 둘 다에서 문자열 "Publishing_Server2_Name_Prompt"을 검색하면 다음과 같은 항목을 찾을 수 있습니다.

정책 예제 사용:

`<data id="Publishing_Server2_Name_Prompt" value="name"/>` 

Appv.admx 파일:

      <elements>
        <text id="Publishing_Server2_Name_Prompt" valueName="Name" required="true"/>

ADMX 정책 예제

다음 SyncML 예제에서는 ADMX 템플릿으로 정의된 MDM 정책, 특히 애플리케이션 가상화 ADMX 파일 appv.admx의 Publishing_Server2_Policy 그룹 정책 설명을 설정하는 방법을 설명합니다. 이 그룹 정책 관리하는 기능은 중요하지 않습니다. MDM ISV가 ADMX 정책을 설정하는 방법만 설명하는 데 사용됩니다. 이러한 SyncML 예제에서는 정책을 테스트하는 데 사용할 수 있는 일반적인 옵션 및 해당 SyncML 코드를 보여 줍니다. SyncML의 페이로드는 XML로 인코딩되어야 합니다. 이 XML 인코딩의 경우 즐겨 찾는 온라인 도구를 사용할 수 있습니다. 페이로드 인코딩을 방지하려면 MDM에서 지원하는 경우 CData를 사용할 수 있습니다. 자세한 내용은 CDATA 섹션을 참조하세요.

정책 사용

페이로드

<enabled/>
<data id="Publishing_Server2_Name_Prompt" value="Name"/>
<data id="Publishing_Server_URL_Prompt" value="http://someuri"/>
<data id="Global_Publishing_Refresh_Options" value="1"/>
<data id="Global_Refresh_OnLogon_Options" value="0"/>
<data id="Global_Refresh_Interval_Prompt" value="15"/>
<data id="Global_Refresh_Unit_Options" value="0"/>
<data id="User_Publishing_Refresh_Options" value="0"/>
<data id="User_Refresh_OnLogon_Options" value="0"/>
<data id="User_Refresh_Interval_Prompt" value="15"/>
<data id="User_Refresh_Unit_Options" value="1"/>

SyncML 요청

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
        <Data>
        <![CDATA[<enabled/><data id="Publishing_Server2_Name_Prompt" value="name prompt"/><data 
          id="Publishing_Server_URL_Prompt" value="URL prompt"/><data 
          id="Global_Publishing_Refresh_Options" value="1"/><data 
          id="Global_Refresh_OnLogon_Options" value="0"/><data 
          id="Global_Refresh_Interval_Prompt" value="15"/><data 
          id="Global_Refresh_Unit_Options" value="0"/><data 
          id="User_Publishing_Refresh_Options" value="0"/><data 
          id="User_Refresh_OnLogon_Options" value="0"/><data 
          id="User_Refresh_Interval_Prompt" value="15"/><data 
          id="User_Refresh_Unit_Options" value="1"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

응답 SyncML

<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>2</CmdRef>
  <Cmd>Replace</Cmd>
  <Data>200</Data>
</Status>

정책 사용 안 림

페이로드

<disabled/>

SyncML 요청

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
        <Data><![CDATA[<disabled/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>
''''

**Response SyncML**
```XML
<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>2</CmdRef>
  <Cmd>Replace</Cmd>
  <Data>200</Data>
</Status>

구성되지 않은 정책 설정

페이로드

(없음)

SyncML 요청

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Delete>
      <CmdID>1</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
      </Item>
    </Delete>
    <Final/>
  </SyncBody>
</SyncML>

응답 SyncML

<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>1</CmdRef>
  <Cmd>Delete</Cmd>
  <Data>200</Data>
</Status>

다양한 ADMX 요소에 대한 샘플 SyncML

이 섹션에서는 Text, Multi-Text, Decimal, Boolean 및 List와 같은 다양한 ADMX 요소에 대한 샘플 SyncML에 대해 설명합니다.

그룹 정책 정책 범주 경로 및 이름이 MDM 영역 및 정책 이름에 매핑되는 방법

다음은 MDM 영역 및 이름에 대한 그룹 정책 내부 OS 매핑입니다. 이 매핑은 컴파일될 때 연결된 ADMX 파일을 구문 분석하고 지정된 그룹 정책 정책을 찾아 MDM 정책 CSP 클라이언트 저장소에 해당 정의(메타데이터)를 저장하는 Windows 매니페스트 집합의 일부입니다. ADMX 지원 정책은 계층적으로 구성됩니다. 해당 범위는 컴퓨터, 사용자 또는 둘 다의 범위를 가질 수 있습니다. 아래와 같이 SyncML 명령 및 정책 CSP URI를 통해 MDM 정책을 참조하는 경우 이 메타데이터가 참조되고 어떤 레지스트리 키가 설정되거나 제거되는지 결정합니다. 컴퓨터 범위 정책은 .\Device 및 .\User를 통해 사용자 범위 정책을 통해 참조됩니다.

./[Device|User]/Vendor/MSFT/Policy/Config/[config|result]/<area>/<policy>

상용구 SyncML XML 태그와 충돌하지 않도록 SyncML의 데이터 페이로드를 인코딩해야 합니다. 정책 데이터 코더의 도구 상자를 인코딩하고 인코딩하는 데 이 온라인 도구를 사용합니다.

AppVirtualization 영역에 대한 매니페스트 코드 조각:

<identity xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" owner="Microsoft" namespace="Windows-DeviceManagement-PolicyDefinition" name="AppVirtualization">
  <policyDefinitions>
    <area name="AppVirtualization">
      <policies>
.
.
.
         <stringPolicy name="PublishingAllowServer2" notSupportedOnPlatform="phone" admxbacked="appv.admx" scope="machine">
            <ADMXPolicy area="appv~AT~System~CAT_AppV~CAT_Publishing" name="Publishing_Server2_Policy" scope="machine" />
           <registryKeyRedirect path="SOFTWARE\Policies\Microsoft\AppV\Client\Publishing\Servers\2" />
         </stringPolicy >
.
.
.

위의 GP 정책에 대한 LocURI 는 다음과 같습니다.

./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2

아래 샘플을 사용하여 영역/정책에 대한 SyncML을 구성하려면 SyncML 섹션의 데이터 ID값을 <Data> 업데이트해야 합니다. '&' 문자가 접두사로 지정된 항목은 필요한 이스케이프 문자이며 표시된 대로 보존할 수 있습니다.

Text 요소

요소는 text 단순히 문자열에 해당하며 gpedit.msc가 표시하는 정책 패널의 편집 상자에 해당합니다. 문자열은 REG_SZ 형식의 레지스트리에 저장됩니다.

ADMX 파일: inetres.admx

<policy name="RestrictHomePage" class="User" displayName="$(string.RestrictHomePage)" explainText="$(string.IE_ExplainRestrictHomePage)" presentation="$(presentation.RestrictHomePage)" key="Software\Policies\Microsoft\Internet Explorer\Control Panel" valueName="HomePage">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE5" />
  <elements>
    <text id="EnterHomePagePrompt" key="Software\Policies\Microsoft\Internet Explorer\Main" valueName="Start Page" required="true" />
  </elements>
</policy>

해당 SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>$CmdId$</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/Policy/Config/InternetExplorer/DisableHomePageChange</LocURI>
        </Target>
        <Data><![CDATA[<enabled/><data id="EnterHomePagePrompt" value="mystartpage"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

MultiText 요소

요소는 multiText 단순히 REG_MULTISZ 레지스트리 문자열에 해당하며 gpedit.msc에서 표시하는 정책 패널에 여러 문자열을 입력하는 그리드에 해당합니다. SyncML의 각 문자열은 유니코드 문자 0xF000(인코딩된 버전: &#xF000;)로 구분되어야 합니다.

<policy name="Virtualization_JITVAllowList" class="Machine" displayName="$(string.Virtualization_JITVAllowList)"
        explainText="$(string.Virtualization_JITVAllowList_Help)" presentation="$(presentation.Virtualization_JITVAllowList)"
          key="SOFTWARE\Policies\Microsoft\AppV\Client\Virtualization"
          valueName="ProcessesUsingVirtualComponents">
    <parentCategory ref="CAT_Virtualization" />
    <supportedOn ref="windows:SUPPORTED_Windows7" />
    <elements>
    <multiText id="Virtualization_JITVAllowList_Prompt" valueName="ProcessesUsingVirtualComponents" />
    </elements>
</policy>

해당 SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/VirtualComponentsAllowList</LocURI>
        </Target>
        <Data><![CDATA[<enabled/><data id="Virtualization_JITVAllowList_Prompt" value="C:\QuickPatch\TEST\snot.exe&#xF000;C:\QuickPatch\TEST\foo.exe&#xF000;C:\QuickPatch\TEST\bar.exe"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

List 요소(및 해당 변형)

요소는 list 단순히 REG_SZ 레지스트리 문자열의 하이브에 해당하고 gpedit.msc에 의해 표시되는 정책 패널에 여러 문자열을 입력하는 그리드에 해당합니다. SyncML에서 이 요소를 나타내는 방법은 문자열 쌍을 포함하는 문자열입니다. 각 쌍은 REG_SZ 이름/값 키입니다. gpedit.msc(관리자 권한으로 실행)를 통해 정책을 적용하고 레지스트리 하이브 위치로 이동하여 목록 값이 저장되는 방법을 확인하는 것이 가장 좋습니다. 이 위치는 이름/값 쌍이 SyncML을 통해 표현하기 위해 저장되는 방식에 대한 아이디어를 제공합니다.

참고

SyncML의 각 문자열은 유니코드 문자 0xF000(인코딩된 버전: &#xF000;)로 구분되어야 합니다.

요소의 list 변형은 특성에 따라 결정됩니다. 이러한 특성은 정책 관리자 런타임에서 무시됩니다. MDM 서버는 이름/값 쌍을 관리해야 합니다. 그룹 정책 목록의 간단한 작성은 아래를 참조하세요.

ADMX 파일: inetres.admx

<policy name="SecondaryHomePages" class="Both" displayName="$(string.SecondaryHomePages)" explainText="$(string.IE_ExplainSecondaryHomePages)" presentation="$(presentation.SecondaryHomePages)" key="Software\Policies\Microsoft\Internet Explorer\Main\SecondaryStartPages">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE8" />
  <elements>
    <list id="SecondaryHomePagesList" additive="true" />
  </elements>
</policy>

해당 SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/Policy/Config/InternetExplorer/DisableSecondaryHomePageChange</LocURI>
        </Target>
        <Data><![CDATA[<Enabled/><Data id="SecondaryHomePagesList" value="http://name1&#xF000;http://name1&#xF000;http://name2&#xF000;http://name2"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

요소 없음

<policy name="NoUpdateCheck" class="Machine" displayName="$(string.NoUpdateCheck)" explainText="$(string.IE_ExplainNoUpdateCheck)" key="Software\Policies\Microsoft\Internet Explorer\Infodelivery\Restrictions" valueName="NoUpdateCheck">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE5_6" />
</policy>

해당 SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/InternetExplorer/DisableUpdateCheck</LocURI>
        </Target>
        <Data><![CDATA[<Enabled/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

열거형

<policy name="EncryptionMethodWithXts_Name" class="Machine" displayName="$(string.EncryptionMethodWithXts_Name)" explainText="$(string.EncryptionMethodWithXts_Help)" presentation="$(presentation.EncryptionMethodWithXts_Name)" key="SOFTWARE\Policies\Microsoft\FVE">
    <parentCategory ref="FVECategory" />
    <!--Bug OS:4242178 -->
    <supportedOn ref="windows:SUPPORTED_Windows_10_0" />
    <elements>
        <enum id="EncryptionMethodWithXtsOsDropDown_Name" valueName="EncryptionMethodWithXtsOs" required="true">
            <item displayName="$(string.EncryptionMethodDropDown_AES128_Name2)">
                <value>
                    <decimal value="3" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_AES256_Name2)">
                <value>
                    <decimal value="4" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_XTS_AES128_Name)">
                <value>
                    <decimal value="6" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_XTS_AES256_Name)">
                <value>
                    <decimal value="7" />
                </value>
            </item>
        </enum>
   </elements>
</policy>

해당 SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/BitLocker/EncryptionMethodByDriveType</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/>
          <data id="EncryptionMethodWithXtsOsDropDown_Name" value="4"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

10진수 요소

<policy name="Streaming_Reestablishment_Interval" class="Machine" displayName="$(string.Streaming_Reestablishment_Interval)" 
            explainText="$(string.Streaming_Reestablishment_Interval_Help)"
            presentation="$(presentation.Streaming_Reestablishment_Interval)"
            key="SOFTWARE\Policies\Microsoft\AppV\Client\Streaming">
    <parentCategory ref="CAT_Streaming" />
    <supportedOn ref="windows:SUPPORTED_Windows7" />
    <elements>
        <decimal id="Streaming_Reestablishment_Interval_Prompt" valueName="ReestablishmentInterval" minValue="0" maxValue="3600"/>
    </elements>
</policy>

해당 SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/StreamingAllowReestablishmentInterval</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/>
          <data id="Streaming_Reestablishment_Interval_Prompt" value="4"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

부울 요소

<policy name="DeviceInstall_Classes_Deny" class="Machine" displayName="$(string.DeviceInstall_Classes_Deny)" explainText="$(string.DeviceInstall_Classes_Deny_Help)" presentation="$(presentation.DeviceInstall_Classes_Deny)" key="Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions" valueName="DenyDeviceClasses">
    <parentCategory ref="DeviceInstall_Restrictions_Category" />
    <supportedOn ref="windows:SUPPORTED_WindowsVista" />
    <enabledValue>
    <decimal value="1" />
    </enabledValue>
    <disabledValue>
    <decimal value="0" />
    </disabledValue>
    <elements>
        <list id="DeviceInstall_Classes_Deny_List" key="Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceClasses" valuePrefix="" />
        <boolean id="DeviceInstall_Classes_Deny_Retroactive" valueName="DenyDeviceClassesRetroactive" >
            <trueValue>
                <decimal value="1" />
            </trueValue>
            <falseValue>
                <decimal value="0" />
            </falseValue>
        </boolean>
    </elements>
</policy>

해당 SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/DeviceInstallation/PreventInstallationOfMatchingDeviceSetupClasses</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/><data id="DeviceInstall_Classes_Deny_Retroactive" value="true"/>
          <Data id="DeviceInstall_Classes_Deny_List" value="1&#xF000;deviceId1&#xF000;2&#xF000;deviceId2"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>