ADMX-Dateien

Viele der Einträge haben eine ähnliche Form. Nachfolgend werden daher noch einige etwas komplexere Varianten von Richtlinien besprochen. Ein Beispiel ist eine Richtlinie mit mehreren Elementen:

<policy name="sz_AdminComponents_Title" class="User"
displayName="$(string.sz_AdminComponents_Title)"
explainText="$(string.AdminComponents_Help)" presentation="$(
presentation.sz_AdminComponents_Title)"
key="Software\Microsoft\Windows\CurrentVersion\
Policies\ActiveDesktop\AdminComponent">
<parentCategory ref="ActiveDesktop" />
<supportedOn ref="windows:SUPPORTED_Win2k" />
<elements>
<text id="sz_ATC_AdminAddItem" valueName="Add" />
<text id="sz_ATC_AdminDeleteItem"
valueName="Delete" />
</elements>
</policy>

In diesem Fall werden zwei Werte modifiziert, für die jeweils Festlegungen vorgenommen werden können. Dazu werden mehrere Elemente definiert. Hinter dem Registry-Schlüssel wird nicht direkt ein Wert angegeben, weil dieser erst später bei den Elementen folgt. Die text id-Einträge finden sich auch in den sprachabhängigen, untergeordneten Dateien.

Ebenfalls etwas komplexer ist die Richtlinie zu den Hintergrundbildern:

<policy name="Wallpaper" class="User" displayName
="$(string.Wallpaper)" explainText="$(string.Wallpaper_
Help)" presentation="$(presentation.Wallpaper)"
key="Software\Microsoft\Windows\CurrentVersion\
Policies\System">
<parentCategory ref="ActiveDesktop" />
<supportedOn ref="windows:SUPPORTED_WindowsXP" />
<elements>
<text id="WallpaperName" valueName="Wallpaper"
required="true" />
<enum id="WallpaperStyle" valueName="Wallpaper
Style" required="true">
<item displayName="$(string.WallpaperStyle_
Center)">
<value>
<string>0</string>
</value>
</item>
<item
displayName="$(string.WallpaperStyle_Tile)">
<value>
<string>1</string>
</value>
</item>
<item displayName="$(string.WallpaperStyle_
Stretch)">
<value>
<string>2</string>
</value>
</item>
</enum>
</elements>
</policy>

In diesem Fall wird mit Aufzählungen gearbeitet. Außerdem werden numerische Werte als Zeichenkette definiert, indem sie in den <string>- Tag eingeschlossen werden. Mit required wird darüber festgelegt, dass bestimmte Informationen angegeben werden müssen. Das Beispiel zeigt also einen anderen Ansatz für eine Umsetzung mehrerer Werte.

Ein interessantes Beispiel ist auch das folgende, bei dem ein Wertebereich für eine Eingabe konfiguriert wird:

<policy name="AD_QueryLimit" class="User"
displayName="$(string.AD_QueryLimit)" explainText
="$(string.AD_QueryLimit_Help)" presentation
="$(presentation.AD_QueryLimit)" key="Software\
Policies\Microsoft\Windows\Directory UI"><parentCategory ref="ActiveDirectory" />
<supportedOn ref="windows:SUPPORTED_Win2k" />
<elements>
<decimal id="AD_QueryLimit_Box" valueName
="QueryLimit" required="true" maxValue
="4000000000" />
</elements>
</policy>

In diesem Fall wird nur eine Obergrenze festgelegt. Ebenso könnte man aber auch mit minValue eine Untergrenze konfigurieren.

Das letzte Beispiel legt explizit die Werte für ein Auswahlfeld fest, mit dem eine Option aktiviert oder deaktiviert werden kann:

<policy name="NoMyComputerIcon" class="User"
displayName="$(string.NoMyComputerIcon)"
explainText="$(string.NoMyComputerIcon_Help)"
key="Software\Microsoft\Windows\CurrentVersion\
Policies\NonEnum" valueName="{20D04FE0-3AEA-1069-
A2D8-08002B30309D}">
<parentCategory ref="windows:Desktop" />
<supportedOn ref="windows:SUPPORTED_WindowsXP" />
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
</policies>
</policyDefinitions>

Im Anschluss an die Definition finden sich hier auch noch die schließenden Tags, mit denen die Definition der Richtlinie beendet wird.

Alles in allem sind ADMX-Dateien klarer strukturiert und – auch durch die Aufsplittung in viele Einzeldateien – übersichtlicher als die bisherigen Richtlinienvorlagen.

Serienfortsetzung

Die jeweils abschließenden Teile der Serien „ADFS: Das WebSSO-Szenario“ und „Performanceanalyse“ lesen Sie in der nächsten Ausgabe von Expert´s inside Windows NT/2000.