Grundlegendes zu ADMX-Richtlinien

Aufgrund der erhöhten Einfachheit und der Einfachheit, mit der Geräte gezielt eingesetzt werden können, finden Unternehmen es zunehmend vorteilhafter, ihre PC-Verwaltung auf eine cloudbasierte Geräteverwaltungslösung umzustellen. Leider fehlen den modernen Windows-PC-Geräteverwaltungslösungen die wichtigen Konfigurationsfunktionen für Richtlinien und App-Einstellungen, die in einer herkömmlichen PC-Verwaltungslösung unterstützt werden.

Ab Windows 10 Version 1703 wurde die Unterstützung der Mobile Geräteverwaltung -Richtlinienkonfiguration (MDM) erweitert, um den Zugriff auf ausgewählte Gruppenrichtlinie administrativen Vorlagen (ADMX-Richtlinien) für Windows-PCs über den Richtlinienkonfigurationsdienstanbieter (Policy Configuration Service Provider, CSP) zu ermöglichen. Dieser erweiterte Zugriff stellt sicher, dass Unternehmen ihre Geräte konform halten und das Risiko einer Gefährdung der Sicherheit ihrer über die Cloud verwalteten Geräte verhindern können.

Hintergrund

Zusätzlich zu standardmäßigen MDM-Richtlinien kann der Richtlinien-CSP auch ausgewählte ADMX-Richtlinien behandeln. In einer ADMX-Richtlinie enthält eine administrative Vorlage die Metadaten eines Windows-Gruppenrichtlinie und kann im Editor für lokale Gruppenrichtlinie auf einem PC bearbeitet werden. Jede administrative Vorlage gibt die Registrierungsschlüssel (und deren Werte) an, die einem Gruppenrichtlinie zugeordnet sind, und definiert die Richtlinieneinstellungen, die verwaltet werden können. Administrative Vorlagen organisieren Gruppenrichtlinien in einer Hierarchie, in der jedes Segment im hierarchischen Pfad als Kategorie definiert ist. Jede Einstellung in einer Gruppenrichtlinie administrativen Vorlage entspricht einem bestimmten Registrierungswert. Diese Gruppenrichtlinie Einstellungen werden in einem standardbasierten XML-Dateiformat definiert, das als ADMX-Datei bezeichnet wird. Weitere Informationen finden Sie unter Gruppenrichtlinie ADMX-Syntaxreferenz.

ADMX-Dateien können entweder Betriebssystemgruppenrichtlinien beschreiben, die mit Windows ausgeliefert werden, oder sie können Einstellungen von Anwendungen beschreiben, die vom Betriebssystem getrennt sind und in der Regel heruntergeladen und auf einem PC installiert werden können. Abhängig von der spezifischen Kategorie der Einstellungen, die sie steuern (Betriebssystem oder Anwendung), befinden sich die Administrativen Vorlageneinstellungen an den folgenden beiden Speicherorten im Editor für lokale Gruppenrichtlinie:

  • Betriebssystemeinstellungen: Computerkonfiguration/Administrative Vorlagen
  • Anwendungseinstellungen: Benutzerkonfiguration/Administrative Vorlagen

In einem Domänencontroller-/Gruppenrichtlinie-Ökosystem werden Gruppenrichtlinien automatisch der Registrierung des Clientcomputers oder Benutzerprofils durch die clientseitige Erweiterung administrativer Vorlagen (Client Side Extension, CSE) hinzugefügt, wenn der Clientcomputer einen Gruppenrichtlinie verarbeitet. Umgekehrt werden in einem MDM-verwalteten Client ADMX-Dateien angewendet, um Richtlinien unabhängig von Gruppenrichtlinien zu definieren. Daher ist in einem MDM-verwalteten Client keine Gruppenrichtlinie-Infrastruktur erforderlich, einschließlich des Gruppenrichtlinie Service (gpsvc.exe).

Eine ADMX-Datei kann entweder mit Windows ausgeliefert werden (befindet sich unter %SystemRoot%\policydefinitions), oder sie kann über den Richtlinien-CSP-URI (./Vendor/MSFT/Policy/ConfigOperations/ADMXInstall) auf einem Gerät erfasst werden. ADMX-Posteingangsdateien werden zur Erstellungszeit des Betriebssystems in MDM-Richtlinien verarbeitet. ADMX-Dateien, die erfasst werden, werden nach dem Versand des Betriebssystems über den Richtlinien-CSP in MDM-Richtlinienrichtlinien verarbeitet. Da der Richtlinien-CSP auf keinen Aspekt des Gruppenrichtlinie Clientstapels angewiesen ist, einschließlich des Gruppenrichtlinie Service (GPSvc) des PCs, können die Richtlinienhandler, die auf dem Gerät erfasst werden, auf Richtlinien reagieren, die vom MDM festgelegt werden.

Windows ordnet den Namen und den Kategoriepfad eines Gruppenrichtlinie einem MDM-Richtlinienbereich und Richtliniennamen zu, indem die zugeordnete ADMX-Datei analysiert, die angegebene Gruppenrichtlinie gesucht und die Definition (Metadaten) im MDM-Richtlinien-CSP-Clientspeicher gespeichert wird. Wenn ein SyncML-Befehl und der Richtlinien-CSP-URI auf die MDM-Richtlinie verweisen, .\[device|user]\vendor\msft\policy\[config|result]\<area>\<policy>wird auf diese Metadaten verwiesen und bestimmt, welche Registrierungsschlüssel festgelegt oder entfernt werden. Eine Liste der von MDM unterstützten ADMX-Richtlinien finden Sie unter Richtlinien-CSP – ADMX-Richtlinien.

ADMX-Dateien und der Gruppenrichtlinie-Editor

Um die End-to-End-MDM-Behandlung von ADMX-Gruppenrichtlinien zu erfassen, muss ein IT-Administrator eine Benutzeroberfläche wie den Gruppenrichtlinie-Editor (gpedit.msc) verwenden, um die erforderlichen Daten zu sammeln. Die Benutzeroberfläche der MDM ISV-Konsole bestimmt, wie die erforderlichen Gruppenrichtlinie Daten vom IT-Administrator gesammelt werden. ADMX-Gruppenrichtlinien sind in einer Hierarchie organisiert und können einen Bereich von Computer, Benutzer oder beidem haben. Im Gruppenrichtlinie Beispiel im nächsten Abschnitt wird eine computerweite Gruppenrichtlinie namens "Publishing Server 2 Settings" (Einstellungen für Veröffentlichungsserver 2) verwendet. Wenn diese Gruppenrichtlinie ausgewählt ist, sind die verfügbaren Status Nicht konfiguriert, Aktiviert und Deaktiviert.

Die ADMX-Datei, die der MDM ISV verwendet, um zu bestimmen, welche Benutzeroberfläche dem IT-Administrator angezeigt werden soll, ist dieselbe ADMX-Datei, die der Client für die Richtliniendefinition verwendet. Die ADMX-Datei wird entweder vom Betriebssystem zur Buildzeit oder vom Client zur Betriebssystemlaufzeit verarbeitet. In beiden Fällen müssen der Client und der MDM-ISV mit den ADMX-Richtliniendefinitionen synchronisiert werden. Jede ADMX-Datei entspricht einer Gruppenrichtlinie Kategorie und enthält in der Regel mehrere Richtliniendefinitionen, von denen jede eine einzelne Gruppenrichtlinie darstellt. Beispielsweise ist die Richtliniendefinition für die "Veröffentlichungsserver 2-Einstellungen" in der Datei appv.admx enthalten, die die Richtliniendefinitionen für die Microsoft Application Virtualization (App-V) Gruppenrichtlinie Kategorie enthält.

einstellung Gruppenrichtlinie Optionsschaltfläche:

  • Wenn Aktiviert ausgewählt ist, werden die erforderlichen Dateneingabesteuerelemente für den Benutzer auf der Benutzeroberfläche angezeigt. Wenn der IT-Administrator die Daten eingibt und auf Übernehmen klickt, treten die folgenden Ereignisse auf:

    • Der MDM ISV-Server richtet einen Befehl Replace SyncML durch eine Nutzlast ein, die die vom Benutzer eingegebenen Daten enthält.
    • Der MDM-Clientstapel empfängt diese Daten, wodurch der Richtlinien-CSP die Registrierung des Geräts gemäß der ADMX-Richtliniendefinition aktualisiert.
  • Wenn Deaktiviert ausgewählt ist und Sie auf Übernehmen klicken, treten die folgenden Ereignisse auf:

    • Der MDM ISV-Server richtet einen Befehl Replace SyncML durch eine Nutzlast ein, die auf <disabled\>festgelegt ist.
    • Der MDM-Clientstapel empfängt diesen Befehl, der bewirkt, dass der Richtlinien-CSP entweder die Registrierungseinstellungen des Geräts löscht, die Registrierungsschlüssel oder beides gemäß der von der ADMX-Richtliniendefinition vorgegebenen Zustandsänderung festlegt.
  • Wenn Nicht konfiguriert ausgewählt ist und Sie auf Übernehmen klicken, treten die folgenden Ereignisse auf:

    • Der MDM ISV-Server richtet einen Delete SyncML-Befehl ein.
    • Der MDM-Clientstapel empfängt diesen Befehl, wodurch der Richtlinien-CSP die Registrierungseinstellungen des Geräts gemäß der ADMX-Richtliniendefinition löscht.

Das folgende Diagramm zeigt die Hauptanzeige für den Gruppenrichtlinie-Editor.

Gruppenrichtlinie Editor.

Das folgende Diagramm zeigt die Einstellungen für die Gruppenrichtlinie "Veröffentlichungsserver 2-Einstellungen" im Gruppenrichtlinie-Editor.

Gruppenrichtlinie Einstellungen des Verlegerservers 2.

Die meisten Gruppenrichtlinien sind ein einfacher boolescher Typ. Wenn Sie bei einem booleschen Gruppenrichtlinie Aktiviert auswählen, enthält der Optionsbereich keine Dateneingabefelder, und die Nutzlast von SyncML ist einfach <enabled/>. Wenn jedoch Dateneingabefelder im Optionsbereich vorhanden sind, muss der MDM-Server diese Daten bereitstellen. Das folgende Beispiel zum Aktivieren eines Gruppenrichtlinie veranschaulicht diese Komplexität. In diesem Beispiel werden 10 Name-Wert-Paare durch <data /> Tags in der Nutzlast beschrieben, die den 10 Dateneingabefeldern im Gruppenrichtlinie Editor-Optionsbereich für die Gruppenrichtlinie "Publishing Server 2 Settings" entsprechen. Die ADMX-Datei, die die Gruppenrichtlinien definiert, wird vom MDM-Server verwendet, ähnlich wie sie vom Gruppenrichtlinie-Editor verwendet wird. Der Gruppenrichtlinie-Editor zeigt eine Benutzeroberfläche an, um die vollständigen Gruppenrichtlinie Instanzdaten zu empfangen, was auch die IT-Administratorkonsole des MDM-Servers tun muss. Für jedes Element und id-Attribut <text> in der ADMX-Richtliniendefinition müssen ein entsprechendes <data /> Element und id-Attribut in der Nutzlast vorhanden sein. Die ADMX-Datei steuert die Richtliniendefinition und wird vom MDM-Server über das SyncML-Protokoll benötigt.

Wichtig

Alle Dateneingabefelder, die auf der seite Gruppenrichtlinie des Gruppenrichtlinie-Editors angezeigt werden, müssen im codierten XML der SyncML-Nutzlast angegeben werden. Die SyncML-Datennutzlast entspricht der vom Benutzer bereitgestellten Gruppenrichtlinie Daten über GPEdit.msc.

Weitere Informationen zum Gruppenrichtlinie Beschreibungsformat finden Sie unter Administrative Vorlagendateiformat (ADMX). Elemente können Text, MultiText, Boolean, Enum, Decimal oder List sein (weitere Informationen finden Sie unter Richtlinienelemente).

Wenn Sie beispielsweise im Beispiel Aktivieren einer Richtlinie und der entsprechenden ADMX-Richtliniendefinition in der Datei appv.admx nach der Zeichenfolge "Publishing_Server2_Name_Prompt" suchen, finden Sie die folgenden Vorkommen:

Beispiel zum Aktivieren einer Richtlinie:

`<data id="Publishing_Server2_Name_Prompt" value="name"/>`

Appv.admx-Datei:

      <elements>
        <text id="Publishing_Server2_Name_Prompt" valueName="Name" required="true"/>

ADMX-Richtlinienbeispiele

In den folgenden SyncML-Beispielen wird beschrieben, wie Sie eine MDM-Richtlinie festlegen, die von einer ADMX-Vorlage definiert wird, insbesondere die Publishing_Server2_Policy Gruppenrichtlinie Beschreibung in der ADMX-Datei für die Anwendungsvirtualisierung appv.admx. Die Funktionalität, die von diesem Gruppenrichtlinie verwaltet wird, ist nicht wichtig. Sie wird nur verwendet, um zu veranschaulichen, wie ein MDM-ISV eine ADMX-Richtlinie festlegen kann. Diese SyncML-Beispiele veranschaulichen allgemeine Optionen und den entsprechenden SyncML-Code, der zum Testen Ihrer Richtlinien verwendet werden kann. Die Nutzlast des SyncML muss XML-codiert sein. Für diese XML-Codierung können Sie das bevorzugte Onlinetool verwenden. Um die Codierung der Nutzlast zu vermeiden, können Sie CData verwenden, wenn Ihr MDM dies unterstützt. Weitere Informationen finden Sie unter CDATA-Abschnitte.

Aktivieren einer Richtlinie

Nutzlast

<enabled/>
<data id="Publishing_Server2_Name_Prompt" value="Name"/>
<data id="Publishing_Server_URL_Prompt" value="http://someuri"/>
<data id="Global_Publishing_Refresh_Options" value="1"/>
<data id="Global_Refresh_OnLogon_Options" value="0"/>
<data id="Global_Refresh_Interval_Prompt" value="15"/>
<data id="Global_Refresh_Unit_Options" value="0"/>
<data id="User_Publishing_Refresh_Options" value="0"/>
<data id="User_Refresh_OnLogon_Options" value="0"/>
<data id="User_Refresh_Interval_Prompt" value="15"/>
<data id="User_Refresh_Unit_Options" value="1"/>

SyncML anfordern

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
        <Data>
        <![CDATA[<enabled/><data id="Publishing_Server2_Name_Prompt" value="name prompt"/><data
          id="Publishing_Server_URL_Prompt" value="URL prompt"/><data
          id="Global_Publishing_Refresh_Options" value="1"/><data
          id="Global_Refresh_OnLogon_Options" value="0"/><data
          id="Global_Refresh_Interval_Prompt" value="15"/><data
          id="Global_Refresh_Unit_Options" value="0"/><data
          id="User_Publishing_Refresh_Options" value="0"/><data
          id="User_Refresh_OnLogon_Options" value="0"/><data
          id="User_Refresh_Interval_Prompt" value="15"/><data
          id="User_Refresh_Unit_Options" value="1"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

AntwortsynchronisierungML

<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>2</CmdRef>
  <Cmd>Replace</Cmd>
  <Data>200</Data>
</Status>

Deaktivieren einer Richtlinie

Nutzlast

<disabled/>

SyncML anfordern

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
        <Data><![CDATA[<disabled/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>
''''

**Response SyncML**
```XML
<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>2</CmdRef>
  <Cmd>Replace</Cmd>
  <Data>200</Data>
</Status>

Festlegen einer Richtlinie auf nicht konfiguriert

Nutzlast

(Keine)

SyncML anfordern

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Delete>
      <CmdID>1</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2</LocURI>
        </Target>
      </Item>
    </Delete>
    <Final/>
  </SyncBody>
</SyncML>

AntwortsynchronisierungML

<Status>
  <CmdID>2</CmdID>
  <MsgRef>1</MsgRef>
  <CmdRef>1</CmdRef>
  <Cmd>Delete</Cmd>
  <Data>200</Data>
</Status>

SyncML-Beispiel für verschiedene ADMX-Elemente

In diesem Abschnitt wird syncML-Beispiel für die verschiedenen ADMX-Elemente wie Text, Multi-Text, Decimal, Boolean und List beschrieben.

Wie ein Gruppenrichtlinie Richtlinienkategoriepfad und -name einem MDM-Bereich und richtliniennamen zugeordnet werden

Im Folgenden finden Sie die interne Betriebssystemzuordnung eines Gruppenrichtlinie zu einem MDM-Bereich und -Namen. Diese Zuordnung ist Teil eines Windows-Manifests, das beim kompilierten Analysieren der zugeordneten ADMX-Datei die angegebene Gruppenrichtlinie Richtlinie findet und diese Definition (Metadaten) im MDM-Richtlinien-CSP-Clientspeicher speichert.  AdMX-fähige Richtlinien sind hierarchisch organisiert. Ihr Bereich kann Computer, Benutzer oder ein Bereich von beidem sein. Wenn auf die MDM-Richtlinie über einen SyncML-Befehl und den Richtlinien-CSP-URI wie unten dargestellt verwiesen wird, wird auf diese Metadaten verwiesen und bestimmt, welche Registrierungsschlüssel festgelegt oder entfernt werden. Auf Computerbereichsrichtlinien wird über .\Device und die Benutzerbereichsrichtlinien über .\User verwiesen.

./[Device|User]/Vendor/MSFT/Policy/Config/[config|result]/<area>/<policy>

Die Datennutzlast von SyncML muss codiert werden, damit es nicht zu Konflikten mit den SyncML XML-Tags kommt. Verwenden Sie dieses Onlinetool zum Codieren und Codieren der Coder-Toolbox für Richtliniendaten.

Codeausschnitt des Manifests für appVirtualization-Bereich:

<identity xmlns="urn:Microsoft.CompPlat/ManifestSchema.v1.00"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" owner="Microsoft" namespace="Windows-DeviceManagement-PolicyDefinition" name="AppVirtualization">
  <policyDefinitions>
    <area name="AppVirtualization">
      <policies>
.
.
.
         <stringPolicy name="PublishingAllowServer2" notSupportedOnPlatform="phone" admxbacked="appv.admx" scope="machine">
            <ADMXPolicy area="appv~AT~System~CAT_AppV~CAT_Publishing" name="Publishing_Server2_Policy" scope="machine" />
           <registryKeyRedirect path="SOFTWARE\Policies\Microsoft\AppV\Client\Publishing\Servers\2" />
         </stringPolicy >
.
.
.

Der LocURI für die obige GP-Richtlinie lautet:

./Device/Vendor/MSFT/Policy/Config/AppVirtualization/PublishingAllowServer2

Zum Erstellen von SyncML für Ihren Bereich/Ihre Richtlinie mithilfe der folgenden Beispiele müssen Sie die Daten-ID und den Wert im <Data> Abschnitt von SyncML aktualisieren. Die Elemente mit dem Präfix "&" sind die erforderlichen Escapezeichen und können wie gezeigt beibehalten werden.

Textelement

Das text Element entspricht einfach einer Zeichenfolge und entsprechend einem Bearbeitungsfeld in einem Richtlinienbereich, der von gpedit.msc angezeigt wird. Die Zeichenfolge wird in der Registrierung vom Typ REG_SZ gespeichert.

ADMX-Datei: inetres.admx

<policy name="RestrictHomePage" class="User" displayName="$(string.RestrictHomePage)" explainText="$(string.IE_ExplainRestrictHomePage)" presentation="$(presentation.RestrictHomePage)" key="Software\Policies\Microsoft\Internet Explorer\Control Panel" valueName="HomePage">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE5" />
  <elements>
    <text id="EnterHomePagePrompt" key="Software\Policies\Microsoft\Internet Explorer\Main" valueName="Start Page" required="true" />
  </elements>
</policy>

Entsprechende SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>$CmdId$</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/Policy/Config/InternetExplorer/DisableHomePageChange</LocURI>
        </Target>
        <Data><![CDATA[<enabled/><data id="EnterHomePagePrompt" value="mystartpage"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

MultiText-Element

Das multiText -Element entspricht einfach einer REG_MULTISZ Registrierungszeichenfolge und entsprechend einem Raster, um mehrere Zeichenfolgen in einen Richtlinienbereich einzugeben, der von gpedit.msc angezeigt wird.  Es wird erwartet, dass jede Zeichenfolge in SyncML durch das Unicode-Zeichen 0xF000 (codierte Version: ) getrennt wird. &#xF000;

<policy name="Virtualization_JITVAllowList" class="Machine" displayName="$(string.Virtualization_JITVAllowList)"
        explainText="$(string.Virtualization_JITVAllowList_Help)" presentation="$(presentation.Virtualization_JITVAllowList)"
          key="SOFTWARE\Policies\Microsoft\AppV\Client\Virtualization"
          valueName="ProcessesUsingVirtualComponents">
    <parentCategory ref="CAT_Virtualization" />
    <supportedOn ref="windows:SUPPORTED_Windows7" />
    <elements>
    <multiText id="Virtualization_JITVAllowList_Prompt" valueName="ProcessesUsingVirtualComponents" />
    </elements>
</policy>

Entsprechende SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/VirtualComponentsAllowList</LocURI>
        </Target>
        <Data><![CDATA[<enabled/><data id="Virtualization_JITVAllowList_Prompt" value="C:\QuickPatch\TEST\snot.exe&#xF000;C:\QuickPatch\TEST\foo.exe&#xF000;C:\QuickPatch\TEST\bar.exe"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

List-Element (und seine Variationen)

Das list -Element entspricht einfach einer Struktur von REG_SZ Registrierungszeichenfolgen und entsprechend einem Raster, um mehrere Zeichenfolgen in einen Richtlinienbereich einzugeben, der von gpedit.msc angezeigt wird. Wie dieses Element in SyncML dargestellt wird, ist eine Zeichenfolge, die Zeichenfolgenpaare enthält. Jedes Paar ist ein REG_SZ Name/Wert-Schlüssel. Es empfiehlt sich, die Richtlinie über gpedit.msc (als Administrator ausführen) anzuwenden und zum Speicherort der Registrierungsstruktur zu wechseln und zu sehen, wie die Listenwerte gespeichert werden. An diesem Speicherort erhalten Sie eine Vorstellung davon, wie die Name-Wert-Paare gespeichert werden, um sie über SyncML auszudrücken.

Hinweis

Es wird erwartet, dass jede Zeichenfolge in SyncML durch das Unicode-Zeichen 0xF000 (codierte Version: &#xF000;) getrennt wird.

Variationen des list Elements werden durch Attribute vorgegeben. Diese Attribute werden von der Policy Manager-Runtime ignoriert. Es wird erwartet, dass der MDM-Server die Name-Wert-Paare verwaltet. Im Folgenden finden Sie einen einfachen Schreibvorgang für Gruppenrichtlinie List.

ADMX-Datei: inetres.admx

<policy name="SecondaryHomePages" class="Both" displayName="$(string.SecondaryHomePages)" explainText="$(string.IE_ExplainSecondaryHomePages)" presentation="$(presentation.SecondaryHomePages)" key="Software\Policies\Microsoft\Internet Explorer\Main\SecondaryStartPages">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE8" />
  <elements>
    <list id="SecondaryHomePagesList" additive="true" />
  </elements>
</policy>

Entsprechende SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./User/Vendor/MSFT/Policy/Config/InternetExplorer/DisableSecondaryHomePageChange</LocURI>
        </Target>
        <Data><![CDATA[<Enabled/><Data id="SecondaryHomePagesList" value="http://name1&#xF000;http://name1&#xF000;http://name2&#xF000;http://name2"/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

Keine Elemente

<policy name="NoUpdateCheck" class="Machine" displayName="$(string.NoUpdateCheck)" explainText="$(string.IE_ExplainNoUpdateCheck)" key="Software\Policies\Microsoft\Internet Explorer\Infodelivery\Restrictions" valueName="NoUpdateCheck">
  <parentCategory ref="InternetExplorer" />
  <supportedOn ref="SUPPORTED_IE5_6" />
</policy>

Entsprechende SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/InternetExplorer/DisableUpdateCheck</LocURI>
        </Target>
        <Data><![CDATA[<Enabled/>]]></Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

Enumeration

<policy name="EncryptionMethodWithXts_Name" class="Machine" displayName="$(string.EncryptionMethodWithXts_Name)" explainText="$(string.EncryptionMethodWithXts_Help)" presentation="$(presentation.EncryptionMethodWithXts_Name)" key="SOFTWARE\Policies\Microsoft\FVE">
    <parentCategory ref="FVECategory" />
    <!--Bug OS:4242178 -->
    <supportedOn ref="windows:SUPPORTED_Windows_10_0" />
    <elements>
        <enum id="EncryptionMethodWithXtsOsDropDown_Name" valueName="EncryptionMethodWithXtsOs" required="true">
            <item displayName="$(string.EncryptionMethodDropDown_AES128_Name2)">
                <value>
                    <decimal value="3" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_AES256_Name2)">
                <value>
                    <decimal value="4" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_XTS_AES128_Name)">
                <value>
                    <decimal value="6" />
                </value>
            </item>
            <item displayName="$(string.EncryptionMethodDropDown_XTS_AES256_Name)">
                <value>
                    <decimal value="7" />
                </value>
            </item>
        </enum>
   </elements>
</policy>

Entsprechende SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/BitLocker/EncryptionMethodByDriveType</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/>
          <data id="EncryptionMethodWithXtsOsDropDown_Name" value="4"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

Decimal-Element

<policy name="Streaming_Reestablishment_Interval" class="Machine" displayName="$(string.Streaming_Reestablishment_Interval)"
            explainText="$(string.Streaming_Reestablishment_Interval_Help)"
            presentation="$(presentation.Streaming_Reestablishment_Interval)"
            key="SOFTWARE\Policies\Microsoft\AppV\Client\Streaming">
    <parentCategory ref="CAT_Streaming" />
    <supportedOn ref="windows:SUPPORTED_Windows7" />
    <elements>
        <decimal id="Streaming_Reestablishment_Interval_Prompt" valueName="ReestablishmentInterval" minValue="0" maxValue="3600"/>
    </elements>
</policy>

Entsprechende SyncML:

<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/AppVirtualization/StreamingAllowReestablishmentInterval</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/>
          <data id="Streaming_Reestablishment_Interval_Prompt" value="4"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>

Boolesches Element

<policy name="DeviceInstall_Classes_Deny" class="Machine" displayName="$(string.DeviceInstall_Classes_Deny)" explainText="$(string.DeviceInstall_Classes_Deny_Help)" presentation="$(presentation.DeviceInstall_Classes_Deny)" key="Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions" valueName="DenyDeviceClasses">
    <parentCategory ref="DeviceInstall_Restrictions_Category" />
    <supportedOn ref="windows:SUPPORTED_WindowsVista" />
    <enabledValue>
    <decimal value="1" />
    </enabledValue>
    <disabledValue>
    <decimal value="0" />
    </disabledValue>
    <elements>
        <list id="DeviceInstall_Classes_Deny_List" key="Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceClasses" valuePrefix="" />
        <boolean id="DeviceInstall_Classes_Deny_Retroactive" valueName="DenyDeviceClassesRetroactive" >
            <trueValue>
                <decimal value="1" />
            </trueValue>
            <falseValue>
                <decimal value="0" />
            </falseValue>
        </boolean>
    </elements>
</policy>

Entsprechende SyncML:

<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.2">
  <SyncBody>
    <Replace>
      <CmdID>2</CmdID>
      <Item>
        <Meta>
          <Format>chr</Format>
          <Type>text/plain</Type>
        </Meta>
        <Target>
          <LocURI>./Device/Vendor/MSFT/Policy/Config/DeviceInstallation/PreventInstallationOfMatchingDeviceSetupClasses</LocURI>
        </Target>
        <Data>
          <![CDATA[<enabled/><data id="DeviceInstall_Classes_Deny_Retroactive" value="true"/>
          <Data id="DeviceInstall_Classes_Deny_List" value="1&#xF000;deviceId1&#xF000;2&#xF000;deviceId2"/>]]>
        </Data>
      </Item>
    </Replace>
    <Final/>
  </SyncBody>
</SyncML>