Поставщик служб конфигурации AssignedAccess

Поставщик служб конфигурации AssignedAccess (CSP) используется для настройки киоска или ограниченного взаимодействия с пользователем. После выполнения CSP следующее имя входа пользователя, связанное с профилем назначенного доступа, переводит устройство в режим киоска, указанный в конфигурации CSP.

Дополнительные сведения о настройке назначенного доступа см. в статье Настройка киосков и ограниченных возможностей пользователей.

В следующем списке показаны узлы поставщика служб конфигурации AssignedAccess:

Конфигурация

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1709 [10.0.16299] и более поздние
./Vendor/MSFT/AssignedAccess/Configuration

Этот узел принимает в качестве входных данных xml AssignedAccessConfiguration.

Сведения о настройке 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

Примечание.

Эта политика является устаревшей и может быть удалена в будущем выпуске.

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT 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 на этом узле в выходных данных всегда возвращается доменное имя.

Этот узел поддерживает методы Add, Delete, Replace и Get. Если конфигурация отсутствует, методы Get и Delete завершаются ошибкой. Если для приложения в режиме киоска уже есть конфигурация, метод Add завершается ошибкой. Шаблон данных для "Добавить" и "Заменить" совпадает.

Совет

В приведенном выше примере двойник \\ является обязательным, так как он находится в ФОРМАТЕ JSON, а JSON экранируется \\ в \. Если сервер MDM использует средство синтаксического анализа JSON\composer, он должен попросить клиентов ввести только один \, который будет находиться \\ в JSON. Если пользователь вводит \\, он будет в формате \\\\ JSON, что приведет к ошибочным результатам. По той же причине, domain\user используемый в xml-файле конфигурации, не требуется \\ , а только один \, так как xml не должен (необходимо) escape-файл \.

Это относится к обоим domain\user, AzureAD\someone@contoso.onmicrosoft.comпри условии, что в строке \ JSON используется объект .

Дополнительные сведения о том, как получить AUMID, см. в разделе Поиск идентификатора модели пользователя приложения установленного приложения.

Важно.

  • В Windows 10 версии 1803 узел Конфигурации представил профиль киоска с одним приложением для замены узла CSP KioskModeApp. Узел KioskModeApp скоро станет нерекомендуемой, поэтому следует использовать профиль киоска с одним приложением в файле configuration xml для узла конфигурации для настройки общедоступного киоска с одним приложением.
  • Кроме того, начиная с Windows 10 версии 1803 узел KioskModeApp становится No-Op, если узел конфигурации настроен на устройстве. Команды добавления, замены и удаления в узле KioskModeApp всегда возвращают значение SUCCESS на сервер MDM, если задан узел конфигурации, но данные KioskModeApp не будут действовать на устройстве. Команда Get в KioskModeApp вернет настроенную строку JSON, даже если она не действует.
  • Вы не можете одновременно настроить на устройстве и KioskModeApp, и 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>
    
  • Удаление KioskModeApp

    <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>
    
  • Замена KioskModeApp

    <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

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
❌ Pro
✅ Enterprise
✅ для образования
❌ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1803 [10.0.17134] и более поздние
./Vendor/MSFT/AssignedAccess/ShellLauncher

Этот узел принимает в качестве входных данных xml ShellLauncherConfiguration.

Дополнительные сведения о средствах запуска оболочки см. в статье Что такое средство запуска оболочки?

Важно.

На устройстве нельзя одновременно настроить ShellLauncher и KioskModeApp.

Примечание.

Настройка средства запуска оболочки с помощью узла ShellLauncher автоматически включает функцию средства запуска оболочки, если она доступна в SKU.

Средство запуска оболочки как компонент и узел ShellLauncher требуют работы Windows Корпоративная или Windows для образовательных учреждений. Узел 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>
    

Состояние

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1803 [10.0.17134] и более поздние
./Vendor/MSFT/AssignedAccess/Status

Этот узел только для чтения содержит xml-файл события работоспособности киоска.

Это позволяет серверу MDM запрашивать текущий Параметр KioskModeAppRuntimeStatus, если для узла StatusConfiguration задано значение "On" или "OnWithAlerts". Если параметр StatusConfiguration имеет значение Off, на сервер MDM будет сообщено сообщение об ошибке "узел не найден".

Начиная с Windows 10, версия 1809 состояние среды выполнения назначенного доступа поддерживает мониторинг режимов киоска с одним приложением и режимами с несколькими приложениями. Ниже приведены возможные коды состояния.

Код состояния Состояние Описание
0 Unknown (неизвестно). Неизвестное состояние.
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

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1803 [10.0.17134] и более поздние
./Vendor/MSFT/AssignedAccess/StatusConfiguration

Этот узел принимает в качестве входных данных xml StatusConfiguration.

Существует три возможных значения для узла StatusEnabled в файле StatusConfiguration xml:

  • Включено
  • 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>

Примеры:

  • Добавление StatusConfiguration с параметром StatusEnabled для OnWithAlerts

    <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>
    
  • Удаление statusConfiguration

    <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>
    
  • Получение statusConfiguration

    <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 (экранированное) и CDATA XML-файла в узле Данных гарантируют, что клиент DM может правильно интерпретировать SyncML и отправить xml конфигурации в виде строки (в исходном формате, неэкранированном) в поставщик CSP AssignedAccess для обработки.

Аналогичным образом в файле XML-файла StartLayout в xml-файле конфигурации используется тот же формат xml внутри xml, что и строка. В приведенном выше примере xml-файла конфигурации для внедрения xml StartLayout используется CDATA. Если вы также используете CDATA для внедрения xml конфигурации в SyncML, у вас есть вложенный CDATA, поэтому обратите внимание на то, как CDATA используется в предоставленном примере CDATA. При этом при создании xml конфигурации сервер MDM может либо экранировать xml-файл начального макета, либо поместить начальный xml-файл внутри CDATA. Когда сервер MDM помещает xml конфигурации в SyncML, сервер MDM также может либо экранировать его, либо упаковать с помощью CDATA.

Escape и 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>
    
  • В этом примере показаны данные CData для 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>
                        <![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>
    

Справочник по поставщикам служб конфигурации