Compartir a través de


AssignedAccess CSP

El proveedor de servicios de configuración de AssignedAccess (CSP) se usa para configurar una experiencia de usuario restringida o de pantalla completa. Una vez que se ejecuta el CSP, el siguiente inicio de sesión de usuario asociado al perfil de acceso asignado coloca el dispositivo en el modo de pantalla completa especificado en la configuración de CSP.

Para más información sobre cómo configurar el acceso asignado, consulte Configuración de quioscos y experiencias de usuario restringidas.

En la lista siguiente se muestran los nodos del proveedor de servicios de configuración de AssignedAccess:

Configuración

Ámbito Ediciones Sistema operativo aplicable
Dispositivo ✅
❌ Usuario
✅ Pro
✅ Empresa
✅ Educación
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10, versión 1709 [10.0.16299] y versiones posteriores
./Vendor/MSFT/AssignedAccess/Configuration

Este nodo acepta un xml AssignedAccessConfiguration como entrada.

Para obtener información sobre cómo configurar un archivo XML, consulte Creación de un archivo XML de configuración de acceso asignado.

Propiedades del marco de descripción:

Nombre de la propiedad Valor de propiedad
Formato chr (cadena)
Tipo de acceso Agregar, Eliminar, Obtener, Reemplazar

Ejemplos:

  • Obtener configuración

    <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>
    
  • Eliminar configuración

    <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

Nota

Esta directiva está en desuso y puede quitarse en una versión futura.

Ámbito Ediciones Sistema operativo aplicable
Dispositivo ✅
❌ Usuario
✅ Pro
✅ Empresa
✅ Educación
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10, versión 1507 [10.0.10240] y versiones posteriores
./Vendor/MSFT/AssignedAccess/KioskModeApp

Este nodo puede aceptar y devolver una cadena json que consta de nombre de cuenta y AUMID para la aplicación de modo quiosco.

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

Al configurar la aplicación en modo de pantalla completa, se usará el nombre de la cuenta para buscar al usuario de destino. El nombre de cuenta incluye el nombre de dominio y el nombre de usuario. El nombre de dominio puede ser opcional si el nombre de usuario es único en todo el sistema. En el caso de una cuenta local, el nombre de dominio debe ser el nombre de la máquina. Cuando se ejecuta "Get" en este nodo, el nombre de dominio siempre se devuelve en la salida.

Este nodo admite los métodos Add, Delete, Replace y Get. Cuando no hay ninguna configuración, se produce un error en los métodos "Get" y "Delete". Cuando ya hay una configuración para la aplicación en modo de pantalla completa, se produce un error en el método "Agregar". El patrón de datos para "Add" y "Replace" es el mismo.

Sugerencia

En el ejemplo anterior, se requiere el doble \\ porque está en los escapes \\ JSON y JSON en \. Si un servidor MDM usa json parser\composer, deben pedir a los clientes que escriban solo uno \, que estará \\ en JSON. Si el usuario escribe \\, se convertirá \\\\ en JSON, lo que provocará resultados erróneos. Por el mismo motivo, domain\user se usa en El xml de configuración no necesita \\ , pero solo un \, porque xml no (es necesario) escape \.

Esto se aplica a , domain\user, AzureAD\someone@contoso.onmicrosoft.comsiempre y cuando se use en una \ cadena JSON.

Para obtener más información sobre cómo obtener el AUMID, consulte Buscar el identificador de modelo de usuario de la aplicación de una aplicación instalada.

Importante

  • En Windows 10, versión 1803, el nodo Configuración introdujo un perfil de pantalla completa de aplicación única para reemplazar el nodo DE CSP KioskModeApp. El nodo KioskModeApp dejará de estar en desuso pronto, por lo que debe usar el perfil de pantalla completa de una sola aplicación en el xml de configuración del nodo Configuración para configurar kiosko de aplicación única orientada al público.
  • Además, a partir de Windows 10, versión 1803, el nodo KioskModeApp se convierte en No-Op si el nodo Configuración está configurado en el dispositivo. Los comandos Add/Replace/Delete en el nodo KioskModeApp siempre devuelven SUCCESS al servidor MDM si el nodo Configuración está establecido, pero los datos de KioskModeApp no surtirán ningún efecto en el dispositivo. El comando Get en KioskModeApp devolverá la cadena JSON configurada, aunque no sea efectiva.
  • No puede establecer KioskModeApp y ShellLauncher al mismo tiempo en el dispositivo.

Propiedades del marco de descripción:

Nombre de la propiedad Valor de propiedad
Formato chr (cadena)
Tipo de acceso Agregar, Eliminar, Obtener, Reemplazar

Ejemplos:

  • Agregar 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>
    
  • Eliminar 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>
    
  • Obtener 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>
    
  • Reemplazar 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

Ámbito Ediciones Sistema operativo aplicable
Dispositivo ✅
❌ Usuario
❌ Pro
✅ Empresa
✅ Educación
❌ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10, versión 1803 [10.0.17134] y versiones posteriores
./Vendor/MSFT/AssignedAccess/ShellLauncher

Este nodo acepta un xml ShellLauncherConfiguration como entrada.

Para obtener información sobre El iniciador de shell, consulte ¿Qué es el iniciador de shell?.

Importante

No puede establecer ShellLauncher y KioskModeApp al mismo tiempo en el dispositivo.

Nota

La configuración del iniciador de shell mediante el nodo ShellLauncher habilita automáticamente la característica Iniciador de shell, si está disponible en la SKU.

El iniciador de shell como una característica y el nodo ShellLauncher requieren que Windows Enterprise o Windows Education funcionen. El nodo ShellLauncher no se admite en Windows 10 Pro.

Propiedades del marco de descripción:

Nombre de la propiedad Valor de propiedad
Formato chr (cadena)
Tipo de acceso Agregar, Eliminar, Obtener, Reemplazar

Este es el artículo de referencia XSD del iniciador de shell: Definición de esquema XML del iniciador de shell (XSD).

Ejemplos:

  • Agregar

    <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>
    
  • Obtener

    <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>
    

Estado

Ámbito Ediciones Sistema operativo aplicable
Dispositivo ✅
❌ Usuario
✅ Pro
✅ Empresa
✅ Educación
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10, versión 1803 [10.0.17134] y versiones posteriores
./Vendor/MSFT/AssignedAccess/Status

Este nodo de solo lectura contiene el xml de evento de mantenimiento de pantalla completa.

Esto permite al servidor MDM consultar el kioskModeAppRuntimeStatus actual siempre y cuando el nodo StatusConfiguration esté establecido en "On" o "OnWithAlerts". Si StatusConfiguration es "Desactivado", se notificará un error de "nodo no encontrado" al servidor MDM.

A partir de Windows 10, versión 1809, el estado en tiempo de ejecución de Acceso asignado admite la supervisión de los modos de pantalla completa de aplicación única y de varias aplicaciones. Estos son los códigos de estado posibles:

Código de estado Estado Descripción
0 Unknown Estado desconocido.
1 Running La cuenta de AssignedAccess (pantalla completa o multiasigna) se ejecuta normalmente.
2 AppNotFound La aplicación de pantalla completa no se implementa en la máquina.
3 ActivationFailed No se pudo iniciar sesión en la cuenta de AssignedAccess (quiosco o aplicación múltiple).
4 AppNoResponse La aplicación de quiosco se inició correctamente, pero ahora no responde.

Además, la carga de estado incluye los siguientes campos:

  • profileId: el servidor MDM puede usarlo para correlacionar la cuenta que produjo el error.
  • OperationList: proporciona la lista de operaciones con errores que se produjeron al aplicar el CSP de acceso asignado, si existen.

Propiedades del marco de descripción:

Nombre de la propiedad Valor de propiedad
Formato chr (cadena)
Tipo de acceso Obtener

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>

Ejemplo:

<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

Ámbito Ediciones Sistema operativo aplicable
Dispositivo ✅
❌ Usuario
✅ Pro
✅ Empresa
✅ Educación
✅ Windows SE
✅ IoT Enterprise/IoT Enterprise LTSC
✅Windows 10, versión 1803 [10.0.17134] y versiones posteriores
./Vendor/MSFT/AssignedAccess/StatusConfiguration

Este nodo acepta un xml StatusConfiguration como entrada.

Hay tres valores posibles para el nodo StatusEnabled dentro de StatusConfiguration xml:

  • Activado
  • OnWithAlerts
  • Desactivado

De forma predeterminada, el nodo StatusConfiguration no existe e implica que esta característica está desactivada. Una vez habilitado a través de CSP, El acceso asignado comprobará el estado de la aplicación de pantalla completa y esperará a que el servidor MDM consulte el estado más reciente desde el nodo Estado. Opcionalmente, el servidor MDM puede participar en la alerta MDM para que se genere una alerta MDM y se envíe inmediatamente al servidor MDM cuando cambie el estado del entorno de ejecución de acceso asignado. Esta alerta MDM contendrá la carga de estado que está disponible a través del nodo Estado. Este encabezado de alerta MDM se define de la siguiente manera:

  • MDMAlertMark: Critical
  • MDMAlertType: com.microsoft.mdm.assignedaccess.status
  • MDMAlertDataType: string
  • Fuente: ./Vendor/MSFT/AssignedAccess
  • Blanco: N/A

Nota

La alerta MDM solo se envía para errores.

Propiedades del marco de descripción:

Nombre de la propiedad Valor de propiedad
Formato chr (cadena)
Tipo de acceso Agregar, Eliminar, Obtener, Reemplazar

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>

Ejemplos:

  • Agregar StatusConfiguration con StatusEnabled establecido en 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>
    
  • Eliminar 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>
    
  • Obtener 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>
    
  • Reemplazar el valor de StatusEnabled por Activado

    <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

Este es el artículo de referencia XSD de acceso asignado: Definición de esquema XML de acceso asignado (XSD).

Para obtener ejemplos prácticos de archivos de configuración de Acceso asignado, consulte Ejemplos de acceso asignado.

Control de XML en la configuración

La codificación XML (con escape) y CDATA del XML en el nodo Datos garantizarán que el cliente DM pueda interpretar correctamente SyncML y enviar el xml de configuración como cadena (en formato original, sin excepción) al CSP de AssignedAccess para controlarlo.

De forma similar, el xml StartLayout dentro del xml de configuración usa el mismo formato, xml dentro de xml, como cadena. En el xml de configuración de ejemplo proporcionado anteriormente, CDATA se usa para insertar el xml StartLayout. Si también usa CDATA para insertar xml de configuración en SyncML, tiene CDATA anidado, por lo que debe prestar atención a cómo se usa CDATA en el ejemplo CDATA proporcionado. Dicho esto, cuando se construye el xml de configuración, el servidor MDM puede escape start layout xml o poner startlayout xml dentro de CDATA, cuando el servidor MDM coloca el xml de configuración dentro de SyncML, el servidor MDM también puede escaparlo o encapsularlo con CDATA.

Escape y CDATA son mecanismos que se usan al controlar xml en xml. Tenga en cuenta que se trata de un canal de transporte para enviar el xml de configuración como carga útil del servidor al cliente. Es transparente para ambos, el usuario final que configura el CSP y para nuestro CSP. Tanto el cliente del lado servidor como nuestro CSP solo deben ver el XML de configuración original.

  • En este ejemplo se muestra el XML con escape del nodo Datos.

    <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>
    
  • En este ejemplo se muestra CData para el 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>
    

Referencia de proveedor de servicios de configuración