AssignedAccess CSP

AssignedAccess CSP(구성 서비스 공급자)는 키오스크 또는 제한된 사용자 환경을 구성하는 데 사용됩니다. CSP가 실행되면 할당된 액세스 프로필과 연결된 다음 사용자 로그인은 디바이스를 CSP 구성에 지정된 키오스크 모드로 전환합니다.

할당된 액세스를 구성하는 방법에 대한 자세한 내용은 키오스크 및 제한된 사용자 환경 구성을 참조하세요.

다음 목록에서는 AssignedAccess 구성 서비스 공급자 노드를 보여 줍니다.

구성

범위 에디션 적용 가능한 OS
✅ 장치
❌ 사용자
✅ 프로
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10 버전 1709 [10.0.16299] 이상
./Vendor/MSFT/AssignedAccess/Configuration

이 노드는 AssignedAccessConfiguration xml을 입력으로 허용합니다.

xml 파일을 구성하는 방법을 알아보려면 할당된 액세스 구성 XML 파일 만들기를 참조하세요.

설명 프레임워크 속성:

속성 이름 속성 값
형식 chr (문자열)
액세스 유형 추가, 삭제, 가져오기, 바꾸기

:

  • 구성 가져오기

    <SyncML xmlns='SYNCML:SYNCML1.2'>
       <SyncBody>
           <Get>
               <CmdID>2</CmdID>
               <Item>
                   <Target>
                       <LocURI>./Device/Vendor/MSFT/AssignedAccess/Configuration</LocURI>
                   </Target>
               </Item>
           </Get>
           <Final />
       </SyncBody>
    </SyncML>
    
  • 구성 삭제

    <SyncML xmlns='SYNCML:SYNCML1.2'>
       <SyncBody>
           <Delete>
               <CmdID>2</CmdID>
               <Item>
                   <Target>
                       <LocURI>./Device/Vendor/MSFT/AssignedAccess/Configuration</LocURI>
                   </Target>
               </Item>
           </Delete>
           <Final />
       </SyncBody>
    </SyncML>
    

KioskModeApp

참고

이 정책은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 수 있습니다.

범위 에디션 적용 가능한 OS
✅ 장치
❌ 사용자
✅ 프로
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10 버전 1507 [10.0.10240] 이상
./Vendor/MSFT/AssignedAccess/KioskModeApp

이 노드는 계정 이름으로 구성된 json 문자열과 키오스크 모드 앱용 AUMID를 수락하고 반환할 수 있습니다.

예: {"User":"domain\\user", "AUMID":"Microsoft. WindowsCalculator_8wekyb3d8bbwe!App"}.

키오스크 모드 앱을 구성할 때 계정 이름을 사용하여 대상 사용자를 찾습니다. 계정 이름에는 도메인 이름 및 사용자 이름이 포함됩니다. 사용자 이름이 시스템 전체에서 고유한 경우 도메인 이름은 선택 사항일 수 있습니다. 로컬 계정의 경우 도메인 이름은 컴퓨터 이름이어야 합니다. 이 노드에서 "Get"이 실행되면 항상 출력에 도메인 이름이 반환됩니다.

이 노드는 추가, 삭제, 바꾸기 및 가져오기 메서드를 지원합니다. 구성이 없으면 "Get" 및 "Delete" 메서드가 실패합니다. 키오스크 모드 앱에 대한 구성이 이미 있는 경우 "추가" 메서드가 실패합니다. "추가" 및 "바꾸기"의 데이터 패턴은 동일합니다.

위의 예제에서 double \\ 은 JSON에 있고 JSON은 로 이스케 \\ 이프되기 \때문에 필요합니다. MDM 서버에서 JSON 파서\composer를 사용하는 경우 고객에게 JSON에 있는 \\ 을 하나\만 입력하도록 요청해야 합니다. 사용자가 를 입력 \\하면 JSON에 포함되며 \\\\ 이로 인해 잘못된 결과가 발생합니다. 같은 이유로 domain\user 구성 xml에서 사용되는 는 이스케\이프하지 않기 때문에 가 하나\만 필요하지 \\ 않습니다.

JSON 문자열에서 가 \ 사용되는 한 두 에 AzureAD\someone@contoso.onmicrosoft.com모두 domain\user적용됩니다.

AUMID를 가져오는 방법에 대한 자세한 내용은 설치된 앱의 애플리케이션 사용자 모델 ID 찾기를 참조하세요.

중요

  • Windows 10 버전 1803에서 구성 노드는 키오스크ModeApp CSP 노드를 대체하는 단일 앱 키오스크 프로필을 도입했습니다. KioskModeApp 노드는 곧 더 이상 사용되지 않으므로 구성 노드에 대한 구성 xml에서 단일 앱 키오스크 프로필을 사용하여 공용 단일 앱 키오스크를 구성해야 합니다.
  • 또한 Windows 10 버전 1803부터 디바이스에 구성 노드가 구성된 경우 키오스크ModeApp 노드가 No-Op 됩니다. 구성 노드가 설정된 경우 KioskModeApp 노드의 추가/바꾸기/삭제 명령은 항상 MDM 서버에 SUCCESS를 반환하지만, KioskModeApp의 데이터는 디바이스에 적용되지 않습니다. KioskModeApp의 Get 명령은 유효하지 않더라도 구성된 JSON 문자열을 반환합니다.
  • 디바이스에서 동시에 키오스크ModeApp과 ShellLauncher를 둘 다 설정할 수 없습니다.

설명 프레임워크 속성:

속성 이름 속성 값
형식 chr (문자열)
액세스 유형 추가, 삭제, 가져오기, 바꾸기

:

  • KioskModeApp 추가

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Add>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/KioskModeApp</LocURI>
                    </Target>
                    <Meta>
                        <Format xmlns="syncml:metinf">chr</Format>
                    </Meta>
                    <Data>{"Account":"Domain\\AccountName","AUMID":"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"}</Data>
                </Item>
            </Add>
            <Final />
        </SyncBody>
    </SyncML>
    
  • 키오스크ModeApp 삭제

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Delete>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/KioskModeApp</LocURI>
                    </Target>
                </Item>
            </Delete>
            <Final />
        </SyncBody>
    </SyncML>
    
  • KioskModeApp 가져오기

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Get>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/KioskModeApp</LocURI>
                    </Target>
                </Item>
            </Get>
            <Final />
        </SyncBody>
    </SyncML>
    
  • 키오스크ModeApp 바꾸기

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Replace>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/KioskModeApp</LocURI>
                    </Target>
                    <Meta>
                        <Format xmlns="syncml:metinf">chr</Format>
                    </Meta>
                    <Data>{"Account":"Domain\\AccountName","AUMID":"Microsoft.WindowsAlarms_8wekyb3d8bbwe!App"}</Data>
                </Item>
            </Replace>
            <Final />
        </SyncBody>
    </SyncML>
    

ShellLauncher

범위 에디션 적용 가능한 OS
✅ 장치
❌ 사용자
❌ 프로
✅ Enterprise
✅ Education
❌ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10 버전 1803 [10.0.17134] 이상
./Vendor/MSFT/AssignedAccess/ShellLauncher

이 노드는 ShellLauncherConfiguration xml을 입력으로 허용합니다.

셸 시작 관리자에 대한 자세한 내용은 셸 시작 관리자란?을 참조하세요.

중요

디바이스에서 ShellLauncher와 KioskModeApp을 동시에 설정할 수 없습니다.

참고

ShellLauncher 노드를 사용하여 셸 시작 관리자를 구성하면 SKU 내에서 사용할 수 있는 경우 셸 시작 관리자 기능이 자동으로 활성화됩니다.

셸 시작 관리자를 기능으로 사용하고 ShellLauncher 노드를 모두 작동하려면 Windows Enterprise 또는 Windows Education이 필요합니다. ShellLauncher 노드는 Windows 10 Pro 지원되지 않습니다.

설명 프레임워크 속성:

속성 이름 속성 값
형식 chr (문자열)
액세스 유형 추가, 삭제, 가져오기, 바꾸기

셸 시작 관리자 XSD 참조 문서는 다음과 같습니다. 셸 시작 관리자 XML 스키마 정의(XSD).

:

  • Add

    <SyncML xmlns='SYNCML:SYNCML1.2'>
      <SyncBody>
        <Add>
          <CmdID>2</CmdID>
          <Item>
            <Target>
              <LocURI>./Device/Vendor/MSFT/AssignedAccess/ShellLauncher</LocURI>
            </Target>
            <Meta>
              <Format xmlns="syncml:metinf">chr</Format>
            </Meta>
            <Data>
            <![CDATA[
            <!-- Add your XML configuration. For more information, see the Shell Launcher XSD reference article. -->
            ]]>
            </Data>
          </Item>
        </Add>
        <Final />
      </SyncBody>
    </SyncML>
    
  • 가져오기

    <SyncML xmlns='SYNCML:SYNCML1.2'>
      <SyncBody>
        <Get>
          <CmdID>2</CmdID>
          <Item>
            <Target>
              <LocURI>./Device/Vendor/MSFT/AssignedAccess/ShellLauncher</LocURI>
            </Target>
          </Item>
        </Get>
        <Final />
      </SyncBody>
    </SyncML>
    

상태

범위 에디션 적용 가능한 OS
✅ 장치
❌ 사용자
✅ 프로
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10 버전 1803 [10.0.17134] 이상
./Vendor/MSFT/AssignedAccess/Status

이 읽기 전용 노드에는 키오스크 상태 이벤트 xml이 포함됩니다.

이렇게 하면 StatusConfiguration 노드가 "On" 또는 "OnWithAlerts"로 설정된 한 MDM 서버에서 현재 KioskModeAppRuntimeStatus를 쿼리할 수 있습니다. StatusConfiguration이 "Off"이면 "노드를 찾을 수 없음" 오류가 MDM 서버에 보고됩니다.

Windows 10, 버전 1809 시작해서 할당된 액세스 런타임 상태 단일 앱 키오스크 및 다중 앱 모드 모니터링을 지원합니다. 가능한 상태 코드는 다음과 같습니다.

상태 코드 상태 설명
0 알 수 없음 알 수 없는 상태.
1 Running AssignedAccess 계정(키오스크 또는 다중 앱)이 정상적으로 실행됩니다.
2 AppNotFound 키오스크 앱은 머신에 배포되지 않습니다.
3 ActivationFailed AssignedAccess 계정(키오스크 또는 다중 앱)이 로그인하지 못했습니다.
4 AppNoResponse 키오스크 앱이 성공적으로 시작되었지만 지금은 응답하지 않습니다.

또한 상태 페이로드에는 다음 필드가 포함됩니다.

  • profileId: MDM 서버에서 오류를 발생시킨 계정의 상관 관계를 지정하는 데 사용할 수 있습니다.
  • OperationList: 할당된 액세스 CSP(있는 경우)를 적용하는 동안 발생한 실패한 작업 목록을 제공합니다.

설명 프레임워크 속성:

속성 이름 속성 값
형식 chr (문자열)
액세스 유형 가져오기

AssignedAccessAlert XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.microsoft.com/AssignedAccess/2018/AssignedAccessAlert"
    xmlns:default="http://schemas.microsoft.com/AssignedAccess/2018/AssignedAccessAlert"
    targetNamespace="http://schemas.microsoft.com/AssignedAccess/2018/AssignedAccessAlert"
    >

    <xs:simpleType name="status_t">
        <xs:restriction base="xs:int">
            <xs:enumeration value="0"/> <!-- Unknown -->
            <xs:enumeration value="1"/> <!-- Running -->
            <xs:enumeration value="2"/> <!-- AppNotFound -->
            <xs:enumeration value="3"/> <!-- ActivationFailed -->
            <xs:enumeration value="4"/> <!-- AppNoResponse -->
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="guid_t">
        <xs:restriction base="xs:string">
            <xs:pattern value="\{[0-9a-fA-F]{8}\-([0-9a-fA-F]{4}\-){3}[0-9a-fA-F]{12}\}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="operation_t">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="errorCode" type="xs:int" minOccurs="1" maxOccurs="1"/>
            <xs:element name="data" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="operationlist_t">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="Operation" type="operation_t" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="event_t">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="status" type="status_t" minOccurs="1" maxOccurs="1"/>
            <xs:element name="profileId" type="guid_t" minOccurs="1" maxOccurs="1"/>
            <xs:element name="errorCode" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="OperationList" type="operationlist_t" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="Name" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:element name="Events">
        <xs:complexType>
            <xs:choice minOccurs="1" maxOccurs="1">
                <xs:element name="Event" type="event_t" minOccurs="1" maxOccurs="1"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
</xs:schema>

:

<SyncML xmlns='SYNCML:SYNCML1.2'>
   <SyncBody>
       <Get>
           <CmdID>2</CmdID>
           <Item>
               <Target>
                 <LocURI>./Device/Vendor/MSFT/AssignedAccess/Status</LocURI>
               </Target>
           </Item>
       </Get>
       <Final />
   </SyncBody>
</SyncML>

StatusConfiguration

범위 에디션 적용 가능한 OS
✅ 장치
❌ 사용자
✅ 프로
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10 버전 1803 [10.0.17134] 이상
./Vendor/MSFT/AssignedAccess/StatusConfiguration

이 노드는 StatusConfiguration xml을 입력으로 허용합니다.

StatusConfiguration xml 내에 StatusEnabled 노드에 대한 세 가지 가능한 값이 있습니다.

  • Windows
  • OnWithAlerts
  • 꺼짐

기본적으로 StatusConfiguration 노드는 존재하지 않으며 이 기능이 꺼져 있음을 의미합니다. CSP를 통해 사용하도록 설정되면 할당된 액세스는 키오스크 앱 상태 검사 MDM 서버가 상태 노드에서 최신 상태 쿼리할 때까지 기다립니다. 필요에 따라 MDM 서버는 할당된 액세스 런타임 상태 변경될 때 MDM 경고가 생성되고 MDM 서버로 즉시 전송되도록 MDM 경고를 옵트인할 수 있습니다. 이 MDM 경고에는 상태 노드를 통해 사용할 수 있는 상태 페이로드가 포함됩니다. 이 MDM 경고 헤더는 다음과 같이 정의됩니다.

  • MDMAlertMark: Critical
  • MDMAlertType: com.microsoft.mdm.assignedaccess.status
  • MDMAlertDataType: string
  • 소스: ./Vendor/MSFT/AssignedAccess
  • 대상: N/A

참고

MDM 경고는 오류에 대해서만 전송됩니다.

설명 프레임워크 속성:

속성 이름 속성 값
형식 chr (문자열)
액세스 유형 추가, 삭제, 가져오기, 바꾸기

StatusConfiguration XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.microsoft.com/AssignedAccess/2018/StatusConfiguration"
    xmlns:default="http://schemas.microsoft.com/AssignedAccess/2018/StatusConfiguration"
    targetNamespace="http://schemas.microsoft.com/AssignedAccess/2018/StatusConfiguration"
    >

    <xs:simpleType name="status_enabled_t">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Off"/>
            <xs:enumeration value="On"/>
            <xs:enumeration value="OnWithAlerts"/>
        </xs:restriction>
    </xs:simpleType>

    <!--below is the definition of the config xml content-->
    <xs:element name="StatusConfiguration">
        <xs:complexType>
            <xs:sequence minOccurs="1" maxOccurs="1">
                <xs:element name="StatusEnabled" type="status_enabled_t" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

:

  • StatusEnabled를 OnWithAlerts로 설정하여 StatusConfiguration 추가

    <SyncML xmlns='SYNCML:SYNCML1.2'>
      <SyncBody>
        <Add>
          <CmdID>2</CmdID>
          <Item>
            <Target>
              <LocURI>./Device/Vendor/MSFT/AssignedAccess/StatusConfiguration</LocURI>
            </Target>
            <Meta>
              <Format xmlns="syncml:metinf">chr</Format>
            </Meta>
            <Data>
              <![CDATA[
              <?xml version="1.0" encoding="utf-8" ?>
              <StatusConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2018/StatusConfiguration">
                <StatusEnabled>OnWithAlerts</StatusEnabled>
              </StatusConfiguration>
              ]]>
            </Data>
          </Item>
        </Add>
        <Final />
      </SyncBody>
    </SyncML>
    
  • 상태 삭제구성

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Delete>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                      <LocURI>./Device/Vendor/MSFT/AssignedAccess/StatusConfiguration</LocURI>
                    </Target>
                </Item>
            </Delete>
            <Final />
        </SyncBody>
    </SyncML>
    
  • 상태 가져오기구성

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Get>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                      <LocURI>./Device/Vendor/MSFT/AssignedAccess/StatusConfiguration</LocURI>
                    </Target>
                </Item>
            </Get>
            <Final />
        </SyncBody>
    </SyncML>
    
  • StatusEnabled 값을 켜기로 바꿉니다.

    <SyncML xmlns='SYNCML:SYNCML1.2'>
      <SyncBody>
        <Replace>
          <CmdID>2</CmdID>
          <Item>
            <Target>
              <LocURI>./Device/Vendor/MSFT/AssignedAccess/StatusConfiguration</LocURI>
            </Target>
            <Meta>
              <Format xmlns="syncml:metinf">chr</Format>
            </Meta>
            <Data>
              <![CDATA[
              <?xml version="1.0" encoding="utf-8" ?>
              <StatusConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2018/StatusConfiguration">
                <StatusEnabled>On</StatusEnabled>
              </StatusConfiguration>
              ]]>
            </Data>
          </Item>
        </Replace>
        <Final />
      </SyncBody>
    </SyncML>
    

AssignedAccessConfiguration XSD

할당된 액세스 XSD 참조 문서: 할당된 액세스 XML 스키마 정의(XSD)입니다.

할당된 액세스 구성 파일의 실제 예제는 할당된 액세스 예제를 참조하세요.

구성에서 XML 처리

데이터 노드에서 XML의 XML 인코딩(이스케이프됨) 및 CDATA는 DM 클라이언트가 SyncML을 올바르게 해석하고 구성 xml을 문자열(원래 형식의 이스케이프되지 않은)으로 AssignedAccess CSP에 보내 처리할 수 있도록 합니다.

마찬가지로 구성 xml 내의 StartLayout xml은 xml 내에서 문자열과 동일한 형식인 xml을 사용합니다. 위에 제공된 샘플 구성 xml에서 CDATA는 StartLayout xml을 포함하는 데 사용됩니다. CDATA를 사용하여 SyncML에도 구성 xml을 포함하는 경우 중첩된 CDATA가 있으므로 제공된 CDATA 샘플에서 CDATA를 사용하는 방법에 주의하세요. 즉, 구성 xml이 생성될 때 MDM 서버는 시작 레이아웃 xml을 이스케이프하거나 CDATA 내에 startlayout xml을 배치할 수 있습니다. MDM 서버가 SyncML 내에 구성 xml을 배치할 때 MDM 서버는 이스케이프하거나 CDATA로 래핑할 수도 있습니다.

이스케이프 및 CDATA는 xml에서 xml을 처리할 때 사용되는 메커니즘입니다. 구성 xml을 서버에서 클라이언트로 페이로드로 보내는 것이 운송 채널이라는 점을 고려합니다. CSP를 구성하는 최종 사용자와 CSP 모두에 투명합니다. 서버 쪽의 고객과 CSP는 모두 원래 구성 XML만 표시해야 합니다.

  • 이 예제에서는 데이터 노드의 이스케이프된 XML을 보여줍니다.

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Add>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/Configuration</LocURI>
                    </Target>
                    <Meta>
                        <Format xmlns="syncml:metinf">chr</Format>
                    </Meta>
                    <Data>
                        &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
    &lt;AssignedAccessConfiguration xmlns=&quot;http://schemas.microsoft.com/AssignedAccess/2017/config&quot;&gt;
        &lt;Profiles&gt;
            &lt;Profile Id=&quot;{9A2A490F-10F6-4764-974A-43B19E722C23}&quot;&gt;
                &lt;AllAppsList&gt;
                    &lt;AllowedApps&gt;
                        &lt;App DesktopAppPath=&quot;C:\Windows\System32\notepad.exe&quot; /&gt;
                    &lt;/AllowedApps&gt;
                &lt;/AllAppsList&gt;
                &lt;StartLayout&gt;
                    &lt;![CDATA[&lt;LayoutModificationTemplate xmlns:defaultlayout=&quot;http://schemas.microsoft.com/Start/2014/FullDefaultLayout&quot; xmlns:start=&quot;http://schemas.microsoft.com/Start/2014/StartLayout&quot; Version=&quot;1&quot; xmlns=&quot;http://schemas.microsoft.com/Start/2014/LayoutModification&quot;&gt;
                          &lt;LayoutOptions StartTileGroupCellWidth=&quot;6&quot; /&gt;
                          &lt;DefaultLayoutOverride&gt;
                            &lt;StartLayoutCollection&gt;
                              &lt;defaultlayout:StartLayout GroupCellWidth=&quot;6&quot;&gt;
                                &lt;start:Group Name=&quot;Group1&quot;&gt;
                                  &lt;start:Tile Size=&quot;4x4&quot; Column=&quot;0&quot; Row=&quot;0&quot; AppUserModelID=&quot;Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic&quot; /&gt;
                                &lt;/start:Group&gt;
                              &lt;/defaultlayout:StartLayout&gt;
                            &lt;/StartLayoutCollection&gt;
                          &lt;/DefaultLayoutOverride&gt;
                        &lt;/LayoutModificationTemplate&gt;
                    ]]&gt;
                &lt;/StartLayout&gt;
                &lt;Taskbar ShowTaskbar=&quot;true&quot;/&gt;
            &lt;/Profile&gt;
        &lt;/Profiles&gt;
        &lt;Configs&gt;
            &lt;Config&gt;
                &lt;Account&gt;MultiAppKioskUser&lt;/Account&gt;
                &lt;DefaultProfile Id=&quot;{9A2A490F-10F6-4764-974A-43B19E722C23}&quot;/&gt;
            &lt;/Config&gt;
        &lt;/Configs&gt;
    &lt;/AssignedAccessConfiguration&gt;
    
                    </Data>
                </Item>
            </Add>
            <Final />
        </SyncBody>
    </SyncML>
    
  • 이 예제에서는 XML에 대한 CData를 보여줍니다.

    <SyncML xmlns='SYNCML:SYNCML1.2'>
        <SyncBody>
            <Add>
                <CmdID>2</CmdID>
                <Item>
                    <Target>
                        <LocURI>./Device/Vendor/MSFT/AssignedAccess/Configuration</LocURI>
                    </Target>
                    <Meta>
                        <Format xmlns="syncml:metinf">chr</Format>
                    </Meta>
                    <Data>
                        <![CDATA[<?xml version="1.0" encoding="utf-8" ?>
    <AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config">
      <Profiles>
        <Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
          <AllAppsList>
            <AllowedApps>
              <App DesktopAppPath="C:\Windows\System32\notepad.exe" />
            </AllowedApps>
          </AllAppsList>
          <StartLayout>
            <![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
                          <LayoutOptions StartTileGroupCellWidth="6" />
                          <DefaultLayoutOverride>
                            <StartLayoutCollection>
                              <defaultlayout:StartLayout GroupCellWidth="6">
                                <start:Group Name="Group1">
                                  <start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
                                </start:Group>
                                <start:Group Name="Group2">
                                  <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationID="{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\mspaint.exe" />
                                  <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationID="{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\notepad.exe" />
                                </start:Group>
                              </defaultlayout:StartLayout>
                            </StartLayoutCollection>
                          </DefaultLayoutOverride>
                        </LayoutModificationTemplate>
                      ]]]]><![CDATA[>
          </StartLayout>
          <Taskbar ShowTaskbar="true"/>
        </Profile>
      </Profiles>
      <Configs>
        <Config>
          <Account>MultiAppKioskUser</Account>
          <DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
        </Config>
      </Configs>
    </AssignedAccessConfiguration>
    ]]>
                    </Data>
                </Item>
            </Add>
            <Final />
        </SyncBody>
    </SyncML>
    

구성 서비스 공급자 참조