Condividi tramite


CSP AssignedAccess

Il provider di servizi di configurazione AssignedAccess (CSP) viene usato per configurare un'esperienza utente in modalità tutto schermo o con restrizioni. Dopo l'esecuzione del CSP, l'account di accesso utente successivo associato al profilo di accesso assegnato inserisce il dispositivo nella modalità tutto schermo specificata nella configurazione CSP.

Per altre informazioni su come configurare l'accesso assegnato, vedere Configurare chioschi multimediali ed esperienze utente con restrizioni.

L'elenco seguente mostra i nodi del provider di servizi di configurazione AssignedAccess:

Configurazione

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10, versione 1709 [10.0.16299] e versioni successive
./Vendor/MSFT/AssignedAccess/Configuration

Questo nodo accetta un xml AssignedAccessConfiguration come input.

Per informazioni su come configurare un file XML, vedere Creare un file XML di configurazione di Accesso assegnato

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

Esempi:

  • Ottenere la configurazione

    <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>
    
  • Elimina configurazione

    <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

Questo criterio è deprecato e può essere rimosso in una versione futura.

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10 versione 1507 [10.0.10240] e versioni successive
./Vendor/MSFT/AssignedAccess/KioskModeApp

Questo nodo può accettare e restituire una stringa json costituita dal nome dell'account e da AUMID per l'app in modalità tutto schermo.

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

Quando si configura l'app in modalità tutto schermo, verrà usato il nome dell'account per trovare l'utente di destinazione. Il nome dell'account include il nome di dominio e il nome utente. Il nome di dominio può essere facoltativo se il nome utente è univoco nel sistema. Per un account locale, il nome di dominio deve essere nome computer. Quando "Get" viene eseguito su questo nodo, il nome di dominio viene sempre restituito nell'output.

Questo nodo supporta i metodi Add, Delete, Replace e Get. Quando non è disponibile alcuna configurazione, i metodi "Get" e "Delete" hanno esito negativo. Quando è già disponibile una configurazione per l'app in modalità tutto schermo, il metodo "Add" ha esito negativo. Il modello di dati per "Add" e "Replace" è lo stesso.

Suggerimento

Nell'esempio precedente è necessario il valore double \\ perché è in JSON e JSON esegue l'escape \\ in \. Se un server MDM usa JSON parser\composer, deve chiedere ai clienti di digitare solo uno \, che sarà \\ nel codice JSON. Se l'utente digita \\, diventerà \\\\ in JSON, il che causerà risultati errati. Per lo stesso motivo, domain\user usato in Configuration xml non è necessario \\ ma solo uno \, perché xml non esegue (necessario) l'escape \di .

Questo vale sia domain\userper , AzureAD\someone@contoso.onmicrosoft.com, purché venga usato un \ oggetto nella stringa JSON.

Per altre informazioni su come ottenere l'AUMID, vedere Trovare l'ID del modello utente dell'applicazione di un'app installata.

Importante

  • In Windows 10 versione 1803, il nodo Configurazione ha introdotto il profilo chiosco multimediale per app singola per sostituire il nodo CSP KioskModeApp. Il nodo KioskModeApp verrà deprecato a breve, quindi è consigliabile usare il profilo chiosco multimediale dell'app singola nel file xml di configurazione per il nodo Configurazione per configurare un'app singola in modalità tutto schermo pubblica.
  • Inoltre, a partire da Windows 10 versione 1803, il nodo KioskModeApp diventa No-Op se il nodo Configuration è configurato nel dispositivo. Se il nodo Configuration è impostato, i comandi Add/Replace/Delete nel nodo KioskModeApp restituiscono sempre SUCCESS al server MDM, ma i dati di KioskModeApp non avranno alcun effetto sul dispositivo. Il comando Get in KioskModeApp restituirà la stringa JSON configurata anche se non è efficace.
  • Non è possibile impostare sia KioskModeApp che ShellLauncher contemporaneamente nel dispositivo.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

Esempi:

  • Aggiungere 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>
    
  • Eliminare 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>
    
  • Get 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>
    
  • Sostituire 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

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
❌ Pro
✅ Enterprise
✅ Education
❌Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10 versione 1803 [10.0.17134] e versioni successive
./Vendor/MSFT/AssignedAccess/ShellLauncher

Questo nodo accetta un xml ShellLauncherConfiguration come input.

Per informazioni su Shell Launcher, vedere Che cos'è Shell Launcher?.

Importante

Non è possibile impostare sia ShellLauncher che KioskModeApp contemporaneamente nel dispositivo.

Nota

La configurazione di Shell Launcher tramite il nodo ShellLauncher abilita automaticamente la funzionalità di avvio della shell, se disponibile all'interno dello SKU.

Shell Launcher come funzionalità e il nodo ShellLauncher richiedono sia Windows Enterprise che Windows Education per funzionare. Il nodo ShellLauncher non è supportato in Windows 10 Pro.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

Di seguito è riportato l'articolo di riferimento su Shell Launcher XSD: Shell Launcher XML Schema Definition (XSD).

Esempi:

  • Aggiungi

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

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

Stato

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10 versione 1803 [10.0.17134] e versioni successive
./Vendor/MSFT/AssignedAccess/Status

Questo nodo di sola lettura contiene xml dell'evento di integrità del chiosco multimediale.

Ciò consente al server MDM di eseguire query sull'oggetto KioskModeAppRuntimeStatus corrente, purché il nodo StatusConfiguration sia impostato su "On" o "OnWithAlerts". Se StatusConfiguration è "Off", verrà segnalato un errore "node not found" al server MDM.

A partire da Windows 10, versione 1809, lo stato del runtime di Accesso assegnato supporta il monitoraggio delle modalità tutto schermo e multi-app per app singola. Ecco i possibili codici di stato:

Codice di stato Stato Descrizione
0 Sconosciuto Stato sconosciuto.
1 Running L'account AssignedAccess (chiosco multimediale o multi-app) è in esecuzione normalmente.
2 AppNotFound L'app in modalità tutto schermo non viene distribuita nel computer.
3 ActivationFailed L'account AssignedAccess (chiosco multimediale o multi-app) non è riuscito ad accedere.
4 AppNoResponse L'app in modalità tutto schermo è stata avviata correttamente, ma ora non risponde.

Inoltre, il payload stato include i campi seguenti:

  • profileId: può essere usato dal server MDM per correlare l'account che ha causato l'errore.
  • OperationList: fornisce l'elenco delle operazioni non riuscite che si sono verificate durante l'applicazione del CSP di accesso assegnato, se presente.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Ottieni

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>

Esempio:

<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

Ambito Edizioni Sistema operativo applicabile
✅ dispositivo
❌ utente
✅ Pro
✅ Enterprise
✅ Education
✅Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC
✅Windows 10 versione 1803 [10.0.17134] e versioni successive
./Vendor/MSFT/AssignedAccess/StatusConfiguration

Questo nodo accetta un xml StatusConfiguration come input.

Sono disponibili tre valori possibili per il nodo StatusEnabled all'interno di StatusConfiguration xml:

  • Attivato
  • OnWithAlerts
  • Disattivato

Per impostazione predefinita, il nodo StatusConfiguration non esiste e implica che questa funzionalità è disattivata. Una volta abilitato tramite CSP, Accesso assegnato controllerà lo stato dell'app in modalità tutto schermo e attenderà che il server MDM eservi una query sullo stato più recente dal nodo Stato. Facoltativamente, il server MDM può acconsentire esplicitamente all'avviso MDM in modo che venga generato un avviso MDM e inviato immediatamente al server MDM quando viene modificato lo stato del runtime di accesso assegnato. Questo avviso MDM conterrà il payload di stato disponibile tramite il nodo Stato. Questa intestazione di avviso MDM è definita come segue:

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

Nota

L'avviso MDM viene inviato solo per gli errori.

Proprietà del framework di descrizione:

Nome della proprietà Valore proprietà
Formato chr (stringa)
Tipo accesso Aggiungere, eliminare, ottenere, sostituire

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>

Esempi:

  • Aggiungere StatusConfiguration con StatusEnabled impostato su 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>
    
  • Elimina statoConfigurazione

    <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>
    
  • Get 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>
    
  • Sostituire il valore StatusEnabled con On

    <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

Ecco l'articolo di riferimento XSD per l'accesso assegnato: Definizione XSD (Assigned Access XML Schema Definition).

Per esempi pratici di file di configurazione di Accesso assegnato, vedere Esempi di accesso assegnato.

Gestione del codice XML nella configurazione

La codifica XML (escape) e CDATA del codice XML nel nodo Dati garantiscono che il client Dm possa interpretare correttamente SyncML e invierà il file xml di configurazione come stringa (in formato originale, senza caratteri di escape) a AssignedAccess CSP da gestire.

Analogamente, il codice xml StartLayout all'interno del file xml di configurazione usa lo stesso formato xml all'interno di xml come stringa. Nell'xml di configurazione di esempio fornito in precedenza, CDATA viene usato per incorporare il codice xml StartLayout. Se si usa CDATA per incorporare xml di configurazione anche in SyncML, è disponibile CDATA annidato, quindi prestare attenzione al modo in cui viene usato CDATA nell'esempio CDATA fornito. Detto questo, quando viene costruito il file xml di configurazione, il server MDM può eseguire l'escape del layout iniziale xml o inserire il file xml startlayout in CDATA, quando il server MDM inserisce xml di configurazione all'interno di SyncML, il server MDM può anche eseguirne l'escape o eseguire il wrapping con CDATA.

Escape e CDATA sono meccanismi usati durante la gestione di xml in xml. Si consideri che si tratta di un canale di trasporto per inviare l'xml di configurazione come payload dal server al client. È trasparente sia per l'utente finale che configura il CSP che per il CSP. Sia il cliente sul lato server che il CSP devono visualizzare solo il codice XML di configurazione originale.

  • In questo esempio viene illustrato il codice XML con caratteri di escape del nodo Dati.

    <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>
    
  • Questo esempio mostra CData per il codice 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>
    

Riferimento del provider di servizi di configurazione