How to Write a Simple .Adm File for Registry-based Group Policy
Applies To: Windows Server 2003
This section shows you how to create a simple .adm file for delivering registry-based Group Policy settings. The code samples provided are parts of a single .adm file. Please refer to "Language Reference for Administrative Template Files," later in this document for full details about the .adm language.
The sections of the sample .adm file illustrate how to set a registry value to:
Turn a feature on or off.
Allow the selection of one or more values from a list.
Display a list with add and remove buttons.
Enter EDITTEXT and static text.
Display a numeric list to the administrator.
Display a numeric list to the administrator, using a spin control.
Display an actionable list to an administrator.
This sample code displays a check box. The value is set in the registry with the REG_DWORD type. By default, the check box is clear. If the check box is selected, it writes the value 1 to the registry. If the check box is clear, it writes the value 0 to the registry.
CLASS USER
CATEGORY!!SampleCategory
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Samples"
POLICY!!Sample_ADM_FeatureOnOff
#if version >= 4
SUPPORTED!!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_FeatureOnOff_Help
VALUENAME "ADM_Sample_FeatureOnOff"
VALUEON 1
VALUEOFF 0
END POLICY
END CATEGORY
You can use DROPDOWNLIST to display a combo box with a drop-down style list. You can pre-populate the list of items that are displayed in the list and the corresponding registry value to be written for each item in the list.
POLICY!!Sample_ADM_DropDownList
#if version >= 4
SUPPORTED!!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_DropDownList_Help
PART!!Sample_ADM_DropDownList DROPDOWNLIST REQUIRED
VALUENAME "Sample_ADM_DropDownList"
ITEMLIST
NAME !!Sample_ADM_DropDownList_Always VALUE NUMERIC 1 DEFAULT
NAME !!Sample_ADM_DropDownList_WorkStationOnly VALUE NUMERIC 2
NAME !!Sample_ADM_DropDownList_ServerOnly VALUE NUMERIC 3
END ITEMLIST
END PART
END POLICY
You can use registry-based Group Policy to display a list box that contains Add and Remove buttons.
By default, only one column appears in the list box, and for each entry, a value is created where the name and value are the same. For example, a name entry in the list box creates a value called name that contains data labeled name.
POLICY!!Sample_ADM_ListBox
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_ListBox_Help
PART!!Sample_ADM_DropDownList LISTBOX
KEYNAME "Sample_ADM_ListBox"
END PART
END POLICY
This setting allows the user to type alphanumeric text in an edit field. The text is set in the registry with the REG_SZ type.
The following code is an example of how you can use the EDITTEXT PART type.
POLICY!!Sample_ADM_EditText
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_EditText_Help
PART!!Sample_ADM_EditText EDITTEXT
VALUENAME "ADM_Sample_EditText"
END PART
END POLICY
To display a list of numbers from which administrators can select one of the predefined numeric values, you can use a NUMERIC PART type.
POLICY!!Sample_ADM_Numeric
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_Numeric_Help
PART!!Sample_ADM_Numeric NUMERIC
VALUENAME "ADM_Sample_Numeric"
END PART
END POLICY
To display a list of numbers from which administrators can select one of the predefined numeric values, you can use a SPIN control.
POLICY!!Sample_ADM_Spinner
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_Spinner_Help
PART!!Sample_ADM_Spinner NUMERIC
VALUENAME "ADM_Sample_Spinner"
MIN 5 MAX 23 DEFAULT 14 SPIN 3
END PART
END POLICY
To specify a set of arbitrary registry changes to make in response to a control being set to a particular state, you can use the ACTIONLIST option.
POLICY!!Sample_ADM_ActionList
#if version >= 4
SUPPORTED !!SUPPORTED_WindowsXPSP1
#endif
EXPLAIN!!Sample_ADM_ActionList_Help
ACTIONLISTON
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action1"
VALUE NUMERIC 1
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action2"
VALUE NUMERIC 7
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action1"
VALUE NUMERIC 100
END ACTIONLISTON
ACTIONLISTOFF
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action1"
VALUE NUMERIC 0
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action2"
VALUE NUMERIC 0
KEYNAME "SOFTWARE\Policies\Microsoft\ADM_Sample\ActionOnList"
VALUENAME "Action1"
VALUE NUMERIC 0
END ACTIONLISTOFF
END POLICY