Freigeben über


Deklarierter Konfigurationsressourcenzugriff

Der Zugriff auf windows-deklarierte Konfigurationen (WinDC) wird verwendet, um Gerätekonfigurationen zu verwalten und Richtlinien zu erzwingen, um sicherzustellen, dass die Geräte in einem gewünschten Zustand bleiben. Dies ist entscheidend für die Aufrechterhaltung von Sicherheit, Compliance und betrieblicher Effizienz in Organisationen. Der WinDC-Clouddienst wird verwendet, um den gewünschten Zustand einer Ressource an das Gerät zu senden, bei dem das Gerät entsprechend dafür zuständig ist, den Zustand der Ressourcenkonfiguration zu erzwingen und zu verwalten.

Konfigurationsdienstanbieter (Configuration Service Providers, CSPs) spielen eine wichtige Rolle beim Konfigurieren des Ressourcenzugriffs und fungieren als Schnittstelle zwischen dem Gerät und dem WinDC-Protokoll. Sie bieten einen konsistenten und standardisierten Ansatz zum Bereitstellen und Erzwingen von Konfigurationen. CSPs unterstützen verschiedene Szenarien für den Ressourcenzugriff, einschließlich:

Der WinDC-Stapel auf dem Gerät verarbeitet Konfigurationsanforderungen und behält den gewünschten Zustand bei, der für RA entscheidend ist. Die Effizienz, Genauigkeit und Erzwingung von Konfigurationsanforderungen sind entscheidend für eine effektive RA. Der Ressourcenzugriff lässt sich nahtlos in WinDC integrieren und bietet eine erweiterte Methode zum Verwalten von Geräten über die Cloud mit verbesserter Skalierbarkeit und Effizienz.

  • Effizienz: Die batchbasierte Verarbeitung minimiert die Serverressourcennutzung und verringert die Latenz.
  • Genauigkeit: Der WinDC-Clientstapel versteht die Konfigurationsoberfläche des Geräts und ermöglicht eine effektive Behandlung kontinuierlicher Updates. Sie stellt die präzise Ausführung von Konfigurationsänderungen sicher, die vom Clouddienst übermittelt werden.
  • Richtlinienerzwingung: Wenden Sie Organisationsrichtlinien geräteübergreifend konsistent und im großen Stil an, um Compliance und einheitliche Konfiguration sicherzustellen. Dieser Aspekt ermöglicht Es Organisationen, den gewünschten Sicherheitsstatus geräteübergreifend beizubehalten.

Richtlinien für den Zugriff auf Ressourcen

Diese Richtlinien bieten Bewährte Methoden und Beispiele für Entwickler und Tester, um Konfigurationen für den Ressourcenzugriff (Resource Access, RA) auf sichere, effiziente und konsistente Weise zu implementieren. Sie zielen darauf ab, die Netzwerksicherheit zu verbessern und den Ressourcenzugriff für Endbenutzer zu optimieren und gleichzeitig Richtlinien und Complianceanforderungen einzuhalten.

  • Konfigurationsintegrität: Um unterbrechungsfreien und sicheren Zugriff auf Ressourcen zu unterstützen, stellen Sie konsistente Konfigurationen für geräte- und benutzerübergreifend sicher.
  • Zustandsüberprüfung: Überwachen Sie den Status von Konfigurationen, um die richtige Anwendung der Ressourcenzugriffseinstellungen zu überprüfen.
  • Profilverwaltung: Verwalten Sie Effektiv Benutzerprofile, indem Sie nach Bedarf hinzufügen, aktualisieren und löschen, um den Zugriff auf Ressourcen zu steuern und die Sicherheit aufrechtzuerhalten.
  • Protokoll und Überwachung: Verwenden Sie Protokolle und Überwachungspfade für Vorgänge und Änderungen, um die Problembehandlung und Compliance zu unterstützen.
  • Drifterkennung und -behebung: Um die Einhaltung von RA-Richtlinien aufrechtzuerhalten, überwachen Sie die Abweichung kontinuierlich (Änderungen an Konfiguration oder Verhalten), und ergreifen Sie Korrekturmaßnahmen.
  • Sicherheit und Datenschutz: Um Benutzerdaten und -ressourcen zu schützen, implementieren Sie strenge Sicherheitsmaßnahmen und Datenschutzmaßnahmen in Konfigurationen.

Wenn Sie diese Richtlinien befolgen und die Syntax des DeclaredConfiguration-CSP verstehen, können Sie RA-Konfigurationen effektiv implementieren und verwalten und gleichzeitig Sicherheit und Compliance gewährleisten.

WinDC-Dokument

Der Wert des Document Blattknotens im CSP DeclaredConfiguration ist ein XML-Dokument, das die Anforderung beschreibt. Hier sehen Sie ein WinDC-Beispieldokument mit den Konfigurationsdaten, die für den Ressourcenzugriff angegeben sind.

<DeclaredConfiguration context="user" schema="1.0" id="DCA000B5-397D-40A1-AABF-40B25078A7F9" osdefinedscenario="MSFTVPN" checksum="A0">
  <CSP name="./Vendor/MSFT/VPNv2">
    <URI path="Test_SonicWall/TrafficFilterList/0/Protocol" type="int">2</URI>
    <URI path="Test_SonicWall/TrafficFilterList/0/Direction" type="chr">outbound</URI>
  </CSP>
</DeclaredConfiguration>

Es können nur unterstützte Werte für osdefinedscenario verwendet werden. Nicht unterstützte Werte führen zu einer Fehlermeldung ähnlich Invalid scenario nameder .

osdefinedscenario Empfohlene Verwendung von mit
MSFTWiredNetwork WiredNetwork
MSFTResource ActiveSync
MSFTVPN VPN und VPNv2
MSFTWifi WLAN
MSFTInventory Zertifikatbestand
MSFTClientCertificateInstall SCEP-, PFX-, Massenvorlagendaten

Diese osdefinedscenario Werte erfordern die folgenden Tags und Attribute.

  • Das <CSP> XML-Tag beschreibt den CSP, der als Ziel verwendet wird.

    Dieses Tag weist die folgenden Attribute auf:

    Attribut Beschreibung
    name Gibt den Ziel-CSP-OMA-URI an.
  • Das <URI> XML-Tag gibt den CSP-Einstellungsknoten zusammen mit dem gewünschten Wert an.

    Dieses Tag weist die folgenden Attribute auf:

    Attribut Beschreibung
    path Festlegen des Pfads
    type Festlegen des Datentyps

Hinweis

Das Ziel der Szenarioeinstellungen muss mit dem WinDC-Kontext übereinstimmen. Der in <LocURI> und winDC-Kontext definierte CSP-Bereich muss entweder Device oder Usersein.

WinDC-Ressourcenzugriffssyntax

osdefinedscenario-Beispiele

  • Teilbeispiel MSFTWifi für WLAN:

    <DeclaredConfiguration context="Device" schema="1.0" id="10249228-e719-58bf-b459-060de45240f1" osdefinedscenario="MSFTWifi" checksum="11111111">
    <CSP name="./Vendor/MSFT/WiFi">
    
  • Partielles MSFTResource Beispiel für ActiveSync:

    <DeclaredConfiguration context="User" schema="1.0" id="33333333-1861-4131-96e8-44444444" osdefinedscenario="MSFTResource" checksum="5555">
    <CSP name="./Vendor/MSFT/ActiveSync">
    

SyncML-Beispiele

Die Standardmäßige OMA-DM SyncML-Syntax wird verwendet, um die DeclaredConfiguration-CSP-Vorgänge wie Ersetzen, Hinzufügen und Löschen anzugeben. Die Nutzlast des SyncML-Elements <Data> muss XML-codiert sein. Für diese XML-Codierung gibt es verschiedene Onlineencoder, die Sie verwenden können. Um die Codierung der Nutzlast zu vermeiden, können Sie den CDATA-Abschnitt verwenden, wie in den folgenden SyncML-Beispielen gezeigt.

Konfigurieren eines VPNv2-Profils für den Ressourcenzugriff

In diesem Beispiel wird veranschaulicht, wie Sie den VPNv2-CSP verwenden, um ein VPN-Profil namens Test_SonicWall auf dem Gerät im Benutzerbereich zu konfigurieren.

<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document</LocURI>
        </Target>
        <Data><![CDATA[<?xml version="1.0" encoding="utf-8"?>
            <DeclaredConfiguration context="user" schema="1.0" id="DCA000B5-397D-40A1-AABF-40B25078A7F9" osdefinedscenario="MSFTVPN" checksum="A0">
                <CSP name="./Vendor/MSFT/VPNv2">
                    <URI path="Test_SonicWall/TrafficFilterList/0/Protocol" type="int">2</URI>
                    <URI path="Test_SonicWall/TrafficFilterList/0/Direction" type="chr">outbound</URI>
                    <URI path="Test_SonicWall/TrafficFilterList/1/Protocol" type="int">6</URI>
                    <URI path="Test_SonicWall/TrafficFilterList/1/LocalPortRanges" type="chr">43-54</URI>
                    <URI path="Test_SonicWall/TrafficFilterList/1/RemotePortRanges" type="chr">243-456</URI>
                    <URI path="Test_SonicWall/TrafficFilterList/1/Direction" type="chr">outbound</URI>
                    <URI path="Test_SonicWall/EdpModeId" type="chr">wip.contoso.com</URI>
                    <URI path="Test_SonicWall/RememberCredentials" type="bool">true</URI>
                    <URI path="Test_SonicWall/AlwaysOn" type="bool">true</URI>
                    <URI path="Test_SonicWall/Proxy/AutoConfigUrl" type="chr">https://auto.proxy.com</URI>
                    <URI path="Test_SonicWall/DeviceCompliance/Enabled" type="bool">true</URI>
                    <URI path="Test_SonicWall/DeviceCompliance/Sso/Enabled" type="bool">false</URI>
                    <URI path="Test_SonicWall/PluginProfile/ServerUrlList" type="chr">23.54.3.6;server1,vpn.contoso.com;server2</URI>
                    <URI path="Test_SonicWall/PluginProfile/CustomConfiguration" type="chr">&lt;custom&gt;&lt;/custom&gt;</URI>
                    <URI path="Test_SonicWall/PluginProfile/PluginPackageFamilyName" type="chr">SonicWALL.MobileConnect_e5kpm93dbe93j</URI>
                </CSP>
            </DeclaredConfiguration>
        ]]></Data>
      </Item>
    </Replace>
    <Final />
  </SyncBody>
</SyncML>

Aktualisieren eines VPNv2-Profils für den Ressourcenzugriff

In diesem Beispiel wird veranschaulicht, wie dieselbe WinDC-Dokument-ID verwendet wird, jedoch mit einer neuen Prüfsumme ("A3"). Es installiert ein neues VPNv2-Profil namens Test_SonicwallNewund löscht das alte Profil.

<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document</LocURI>
        </Target>
        <Data><![CDATA[<?xml version="1.0" encoding="utf-8"?>
            <DeclaredConfiguration context="user" schema="1.0" id="DCA000B5-397D-40A1-AABF-40B25078A7F9" osdefinedscenario="MSFTVPN" checksum="A3">
                <CSP name="./Vendor/MSFT/VPNv2">
                    <URI path="Test_SonicWallNew/TrafficFilterList/0/Protocol" type="int">2</URI>
                    <URI path="Test_SonicWallNew/TrafficFilterList/0/Direction" type="chr">outbound</URI>
                    <URI path="Test_SonicWallNew/EdpModeId" type="chr">wip.contoso.com</URI>
                    <URI path="Test_SonicWallNew/RememberCredentials" type="bool">true</URI>
                    <URI path="Test_SonicWallNew/AlwaysOn" type="bool">false</URI>
                    <URI path="Test_SonicWallNew/Proxy/AutoConfigUrl" type="chr">https://auto.proxy.com</URI>
                    <URI path="Test_SonicWallNew/DeviceCompliance/Enabled" type="bool">true</URI>
                    <URI path="Test_SonicWallNew/DeviceCompliance/Sso/Enabled" type="bool">false</URI>
                    <URI path="Test_SonicWallNew/PluginProfile/ServerUrlList" type="chr">23.54.3.8;server1,vpn2.contoso.com;server2</URI>
                    <URI path="Test_SonicWallNew/PluginProfile/PluginPackageFamilyName" type="chr">SonicWALL.MobileConnect_e5kpm93dbe93j</URI>
                </CSP>
            </DeclaredConfiguration>
        ]]></Data>
      </Item>
    </Replace>
    <Final />
  </SyncBody>
</SyncML>

Abrufen des VPNv2-Profils

In diesem Beispiel wird veranschaulicht, wie sie verwenden <Get> , um die Ergebnisse der WinDC-Anforderung abzurufen.

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Get>
      <CmdID>1</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Results/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document</LocURI>
        </Target>
      </Item>
    </Get>
    <Final />
  </SyncBody>
</SyncML>

Antwort:

<SyncML xmlns:msft="http://schemas.microsoft.com/MobileDevice/MDM">
  <SyncHdr />
  <SyncBody>
    <Status>
      <CmdID>1</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>0</CmdRef>
      <Cmd>SyncHdr</Cmd>
      <Data>200</Data>
    </Status>
    <Status>
      <CmdID>2</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>2</CmdRef>
      <Cmd>Get</Cmd>
      <Data>200</Data>
    </Status>
    <Results>
      <CmdID>3</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>2</CmdRef>
      <Item>
        <Source>
          <LocURI>./User/Vendor/MSFT/DeclaredConfiguration/Host/BulkTemplate/Results/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document</LocURI>
        </Source>
        <Data>&lt;DeclaredConfigurationResult context="user" schema="1.0" id="DCA000B5-397D-40A1-AABF-40B25078A7F9" osdefinedscenario="MSFTVPN" checksum="A3" result_checksum="9D2ED497C12D2FCEE1C45158D1F7ED8E2DACE210A0B8197A305417882991C978" result_timestamp="2024-08-06T13:54:38Z" operation="Set" state="60"&gt;&lt;CSP name="./Vendor/MSFT/VPNv2" state="60"&gt;&lt;URI path="Test_SonicWallNew/TrafficFilterList/0/Protocol" status="200" state="60" type="int" /&gt;&lt;URI path="Test_SonicWallNew/TrafficFilterList/0/Direction" status="200" state="60" type="chr" /&gt;&lt;URI path="Test_SonicWallNew/EdpModeId" status="200" state="60" type="chr" /&gt;&lt;URI path="Test_SonicWallNew/RememberCredentials" status="200" state="60" type="bool" /&gt;&lt;URI path="Test_SonicWallNew/AlwaysOn" status="200" state="60" type="bool" /&gt;&lt;URI path="Test_SonicWallNew/Proxy/AutoConfigUrl" status="200" state="60" type="chr" /&gt;&lt;URI path="Test_SonicWallNew/DeviceCompliance/Enabled" status="200" state="60" type="bool" /&gt;&lt;URI path="Test_SonicWallNew/DeviceCompliance/Sso/Enabled" status="200" state="60" type="bool" /&gt;&lt;URI path="Test_SonicWallNew/PluginProfile/ServerUrlList" status="200" state="60" type="chr" /&gt;&lt;URI path="Test_SonicWallNew/PluginProfile/PluginPackageFamilyName" status="200" state="60" type="chr" /&gt;&lt;/CSP&gt;&lt;/DeclaredConfigurationResult&gt;</Data>
      </Item>
    </Results>
    <Final />
  </SyncBody>
</SyncML>

Tipp

Informationen zu den Zustandswerten finden Sie unter WinDC-Zustände.

Löschen des VPNv2-Profils

In diesem Beispiel wird veranschaulicht, wie sie verwenden <Delete> , um die Konfigurationsanforderung zum Festlegen des VPNv2-Profils zu entfernen.

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Delete>
      <CmdID>1</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document</LocURI>
        </Target>
      </Item>
    </Delete>
    <Final />
  </SyncBody>
</SyncML>

Ressourcenbesitz

MDM-verwaltete Ressourcen, z. B. ein VPN-Profil, werden zur WinDC-Verwaltung übertragen/migriert, wenn ein WinDC-Dokument für dieselbe Ressource an das Gerät gesendet wird. Diese Ressource bleibt unter der WinDC-Verwaltung, bis das WinDC-Dokument gelöscht oder abgebrochen wird. Wenn MDM andernfalls versucht, dieselbe Ressource über den älteren MDM-Kanal mit SyncML zu verwalten, tritt ein Fehler auf, 0x86000031.

MDM ConfigurationManager: Command failure status. Configuraton Source ID: (29c383c5-6e2d-43bf-a741-c63cb7516bb4), Enrollment Type: (MDMDeviceWithAAD), CSP Name: (ActiveSync), Command Type: (Add: from Replace or Add), CSP URI: (./User/Vendor/MSFT/ActiveSync/Accounts/{3b8b9d4d-a24e-4c6d-a460-034d0bfb9316}), Result: (Unknown Win32 Error code: 0x86000031).

Massenvorlagendaten

Das Massenvorlagendatenszenario geht über den regulären ClientCertificateInstall-CSP hinaus. Es wird ein spezieller Massenvorlagendokumenttyp verwendet. In diesem Abschnitt werden die Struktur, Spezifikation und Ergebnisse der Verwendung der Massenvorlagendaten behandelt.

Vorlagendokument

Ein PFXImport-Vorlagendokument enthält die Struktur, die für den Massenimport von Zertifikaten erforderlich ist. Das Dokument sollte die erforderlichen Felder und das format definieren, das für den Massenimport erforderlich ist.

  • Der Dokumenttyp muss sein BulkTemplate.
  • Der URI-Pfad unterscheidet sich von den regulären URIs mithilfe der @#pfxThumbprint# Syntax. Er deklariert, dass es sich um einen dynamischen Knoten handelt. Instanzdaten für dynamische Knoten werden später mithilfe von BulkVariablesgesendet. Jeder dynamische Knoten kann dynamische Unterknoten enthalten, z. B. die @#pfxBlob# Knoten und #@pfxPassword# in diesem Beispiel.
<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/Host/BulkTemplate/Documents/47e88660-1861-4131-96e8-f32e85011e55/Document</LocURI>
        </Target>
        <Data><![CDATA[<?xml version="1.0" encoding="utf-8"?>
            <DeclaredConfiguration context="Device" schema="1.0" id="47e88660-1861-4131-96e8-f32e85011e55" osdefinedscenario="MSFTResource" checksum="FF356C2C71F6A41F9AB4A601AD00C8B5BC7531576233010B13A221A9FE1BE7A0">
                <ReflectedProperties>
                    <Property name="foo" type="chr">foovalue</Property>
                    <Property name="bar" type="chr">barvalue</Property>
                </ReflectedProperties>
                <CSP name="./Vendor/MSFT/ClientCertificateInstall">
                    <URI path="PFXCertInstall/@#pfxThumbprint#/KeyLocation" type="Int">2</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/PFXCertBlob" type="chr">@#pfxBlob#</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/PFXCertPassword" type="chr">@#pfxPassword#</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/PFXKeyExportable" type="bool">True</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/PfxCertPasswordEncryptionType" type="int">0</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/PfxCertPasswordEncryptionStore" type="chr">SomeValue</URI>
                    <URI path="PFXCertInstall/@#pfxThumbprint#/ContainerName" type="chr"></URI>
                </CSP>
            </DeclaredConfiguration>
        ]]></Data>
      </Item>
    </Replace>
    <Final />
  </SyncBody>
</SyncML>

Vorlagendaten

Die Massenvorlagendaten geben die Zertifikate an, die in einem Base64-codierten Format importiert werden sollen, indem der BulkVariables URI unter dem BulkTemplateverwendet wird. Das Vorlagendatendokument kann mehrere Instanzen enthalten. Jede instance muss alle Unterinstancedaten angeben.

In diesem Beispiel gibt es zwei Instanzen. Jede instance definiert Werte für pfxThumbprint, **pfxBlob und pfxPassword.

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Replace>
      <CmdID>3</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/Host/BulkTemplate/Documents/47e88660-1861-4131-96e8-f32e85011e55/BulkVariables/Value</LocURI>
        </Target>
        <Data><![CDATA[
            <InstanceBlob schema="1.0">
                <Instance>
                    <InstanceData variable="pfxThumbprint">813A171D7341E1DA90D4A01878DD5328D3519006</InstanceData>
                    <InstanceData variable="pfxBlob">pfxbase64BlobValue1</InstanceData>
                    <InstanceData variable="pfxPassword">Password1</InstanceData>
                </Instance>
                <Instance>
                    <InstanceData variable="pfxThumbprint">813A171D7341E1DA90D4A01878DD5328D3519007</InstanceData>
                    <InstanceData variable="pfxBlob">pfxbase64BlobValue2</InstanceData>
                    <InstanceData variable="pfxPassword">Password2</InstanceData>
                </Instance>
            </InstanceBlob>
        ]]></Data>
      </Item>
    </Replace>
    <Final />
  </SyncBody>
</SyncML>

Vorlagenergebnisse

Wenn das Massenvorlagendatendokument erfolgreich verarbeitet wird, werden die angegebenen Zertifikate mit den angegebenen Kennwörtern und Schlüsselspeicherorten in die definierten Speicher importiert.

  • Erfolgreicher Import: Die Zertifikate werden ordnungsgemäß in die Zertifikatspeicher des Geräts importiert.
  • Fehlerbehandlung: Alle Fehler, die während des Importvorgangs auftreten, umfassen relevante status Codes oder Meldungen zur Problembehandlung.

Anforderung:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
  <SyncBody>
    <Get>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/Host/BulkTemplate/Results/47e88660-1861-4131-96e8-f32e85011e55/Document</LocURI>
        </Target>
      </Item>
    </Get>
    <Final />
  </SyncBody>
</SyncML>

Antwort:

<SyncML xmlns:msft="http://schemas.microsoft.com/MobileDevice/MDM">
  <SyncHdr />
  <SyncBody>
    <Status>
      <CmdID>1</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>0</CmdRef>
      <Cmd>SyncHdr</Cmd>
      <Data>200</Data>
    </Status>
    <Status>
      <CmdID>2</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>2</CmdRef>
      <Cmd>Get</Cmd>
      <Data>200</Data>
    </Status>
    <Results>
      <CmdID>3</CmdID>
      <MsgRef>1</MsgRef>
      <CmdRef>2</CmdRef>
      <Item>
        <Source>
          <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/Host/BulkTemplate/Results/47e88660-1861-4131-96e8-f32e85011e55/Document</LocURI>
        </Source>
        <Data>&lt;DeclaredConfigurationResult context="Device" schema="1.0" id="47e88660-1861-4131-96e8-f32e85011e55" osdefinedscenario="MSFTResource" checksum="FF356C2C71F6A41F9AB4A601AD00C8B5BC7531576233010B13A221A9FE1BE7A0" result_checksum="DD8C1C422D50A410C2949BA5F495C2C42CC4B0C7B498D1B43318C503F6CEF491" result_timestamp="2024-08-06T13:26:23Z" operation="Set" state="60"&gt;
            &lt;CSP name="./Vendor/MSFT/ClientCertificateInstall" state="60"&gt;
                &lt;URI path="PFXCertInstall/813A171D7341E1DA90D4A01878DD5328D3519006/KeyLocation" status="200" state="60" type="int" /&gt;
                &lt;URI path="PFXCertInstall/813A171D7341E1DA90D4A01878DD5328D3519006/PFXCertBlob" status="200" state="60" type="chr" /&gt;
                &lt;URI path="PFXCertInstall/813A171D7341E1DA90D4A01878DD5328D3519006/PFXCertPassword" status="200" state="60" type="chr" /&gt;
                &lt;URI path="PFXCertInstall/813A171D7341E1DA90D4A01878DD5328D3519006/PFXKeyExportable" status="200" state="60" type="bool" /&gt;
            &lt;/CSP&gt;&lt;CSP name="./Vendor/MSFT/ClientCertificateInstall" state="60"&gt;
                &lt;URI path="PFXCertInstall/CertPFX1/KeyLocation" status="200" state="60" type="int" /&gt;
                &lt;URI path="PFXCertInstall/CertPFX1/PFXCertBlob" status="200" state="60" type="chr" /&gt;
                &lt;URI path="PFXCertInstall/CertPFX1/PFXCertPassword" status="200" state="60" type="chr" /&gt;
                &lt;URI path="PFXCertInstall/CertPFX1/PFXKeyExportable" status="200" state="60" type="bool" /&gt;
            &lt;/CSP&gt;
            &lt;/DeclaredConfigurationResult&gt;
        </Data>
      </Item>
    </Results>
    <Final />
  </SyncBody>
</SyncML>