|
Структура ADML-файла (файла языковых ресурсов)Как я уже говорил во введении этой статьи, в файлах ADML указываются языковые ресурсы, привязывающиеся к определенному языку, без которых ADMX-файл не будет корректно работать. Основная задача этого файла – обеспечение корректного отображения описания параметра политики, который можно будет найти в оснастке редактора управления групповыми политиками. Структура этого файла намного проще структуры ADMX-файла и ее вы можете увидеть на следующей иллюстрации: Рис. 3. Структура ADML-файла <stringTable>
<string> ... </string>
</stringTable>
Элемент presentationTable. Последний элемент представляет собой целую структуру дочерних элементов управления параметрами отдельных параметров групповой политики, включая в себя всевозможные флажки, переключатели, подписи, подсказки и прочее. Дочерними элементами являются элементы presentation, которые представляют собой отображаемые сведения параметров для параметров политики. Синтаксис для этого элемента имеет следующий вид:
<presentationTable>
<presentation> ... </presentation>
</presentationTable>
Создание своего административного шаблонаНа первый взгляд все эти XML файлы со множеством родительских и дочерних элементов могут показаться очень сложными при создании своего собственного административного шаблона. Чтобы соответствующий материал вам было проще усвоить, в этом разделе я покажу, как можно создать свои ADMX и ADML файлы, предназначенные для управления двумя параметрами антивирусного программного обеспечения Microsoft Security Essentials. Сразу хотелось бы обратить ваше внимание на то, что данный антивирусный продукт можно использовать в SOHO компаниях, то есть там, где развертывается не более 10 компьютеров.
Мы рассмотрим только три параметра, которые позволяют вам указывать тип проверки, а также ее периодичность. Для начала, перед созданием ADMX-файла, вам нужно узнать какие именно параметры в каких разделах системного реестра должны изменяться. При помощи программы ProcessMonitor от Марка Руссиновича или программы RegMon можно быстро отследить изменения в реестре и узнать, что при изменении опций в самом Microsoft Security Essentials, меняются следующие параметра реестра:
- Для того чтобы выполнять запланированную проверку, только когда компьютер включен, но не используется, в системный реестр вносятся следующие изменения:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Antimalware\Scan]
“ScanOnlyIfIdle”=dword:00000001
;Опция включена
“ScanOnlyIfIdle”=dword:00000000
;Опция отключена
- Для того чтобы ограничить использование ЦПУ при проверке, в реестре изменяется значение следующего параметра:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Antimalware\Scan]
“AvgCPULoadFactor”=dword:00000000
;Опция отключена
“AvgCPULoadFactor”=dword:0000000a
;10%
“AvgCPULoadFactor”=dword:00000014
;20%
“AvgCPULoadFactor”=dword:0000001e
;30%
“AvgCPULoadFactor”=dword:00000028
;40%
“AvgCPULoadFactor”=dword:00000032
;50%
“AvgCPULoadFactor”=dword:0000003c
;60%
“AvgCPULoadFactor”=dword:00000046
;70%
“AvgCPULoadFactor”=dword:00000050
;80%
“AvgCPULoadFactor”=dword:0000005a
;90%
“AvgCPULoadFactor”=dword:00000064
;100%
После того как вы узнали нужные параметры и значения реестра, можно приступать к созданию ADMX-файла. Первым делом в ADMX-файле вам нужно указать XML-объявление и элемент policyDefinitions. Практически во всех случаях эти строки создаваемого вами XML-файла одинаковые. У вас они должны получиться примерно следующими:
<?xml version="1.0" encoding="utf-8"?>
<!-- Dmitry Bulanov, 2011 © -->
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
После этого необходимо заполнить элемент policyNamespaces, где нужно будет указать уникальное имя пространства имен, а также ссылку на существующую категорию из другого элемента policyNamespaces. Так как создается ADMX-файл для Microsoft Security Essentials, укажем префикс mse и назовем пространство имен Microsoft.Policies.MicrosoftSecurityEssentials, а также элемент resources, где зададим минимальный уровень версии ADML-файла 1.0, как показано ниже:
<policyNamespaces>
<target prefix="mse" namespace="Microsoft.Policies.MicrosoftSecurityEssentials " />
<using prefix="windows" namespace="Microsoft.Policies.Windows" />
</policyNamespaces>
<supersededAdm fileName="mse" />
<resources minRequiredRevision="1.0" />
Так как элемент supportedOn является опциональным элементом, в нашем случае мы опустим использование этого элемента. Поскольку для нашей группы административных шаблонов нужно указать группу, в которой будут расположены административные шаблоны антивирусного программного обеспечения, нужно добавить элемент categories, как показано в следующем листинге:
<categories>
<category name="MicrosoftSecurityEssentials" displayName="$(string.MicrosoftSecurityEssentials)" explainText="$(string.MicrosoftSecurityEssentials_Help)">
</category>
</categories>
Вот мы и дошли до самого интересного момента, когда нужно добавлять разделы и параметры системного реестра, которые будут использоваться как основа параметров групповых политик. На этом шаге стоит обратить внимание на то что, так как параметры реестра для Microsoft Security Essentials расположены только в разделе HKLM, в классе политики необходимо указать Machine. Эти параметры можно увидеть в следующем листинге, причем, что самое интересное, в данном листинге вы можете найти как переключатели, так и раскрывающиеся меню:
<policies>
<policy name="SchedScanCheck" class="Machine" displayName="$(string.SchedScanCheck)" explainText="$(string.SchedScanCheck_Help)" key="Software\Microsoft\Microsoft Antimalware\Scan" valueName="ScanOnlyIfIdle">
<parentCategory ref="MicrosoftSecurityEssentials" />
<supportedOn ref="windows:SUPPORTED_WindowsXPSP2" />
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
</policy>
<policy name="ScanSch" class="Machine" displayName="$(string.LimitCPUUsage)" explainText="$(string.LimitCPUUsage_Help)" presentation="$(presentation.LimitCPUUsage)" key="Software\Microsoft\Microsoft Antimalware\Scan">
<parentCategory ref="MicrosoftSecurityEssentials" />
<supportedOn ref="windows:SUPPORTED_WindowsXPSP2" />
<elements>
<enum id="LimitCPUUsageMode" valueName="AvgCPULoadFactor" required="true">
<item displayName="$(string.10perc)">
<value>
<decimal value="10" />
</value>
</item>
<item displayName="$(string.20perc)">
<value>
<decimal value="20" />
</value>
</item>
<item displayName="$(string.30perc)">
<value>
<decimal value="30" />
</value>
</item>
<item displayName="$(string.40perc)">
<value>
<decimal value="40" />
</value>
</item>
<item displayName="$(string.50perc)">
<value>
<decimal value="50" />
</value>
</item>
<item displayName="$(string.60perc)">
<value>
<decimal value="60" />
</value>
</item>
<item displayName="$(string.70perc)">
<value>
<decimal value="70" />
</value>
</item>
<item displayName="$(string.80perc)">
<value>
<decimal value="7" />
</value>
</item>
<item displayName="$(string.90perc)">
<value>
<decimal value="90" />
</value>
</item>
<item displayName="$(string.100perc)">
<value>
<decimal value="100" />
</value>
</item>
</enum>
</elements>
</policy>
</policies>
</policyDefinitions>
После того как ADMX-файл будет окончательно завершен, вам еще предстоит написать сам ADML-файл. Как вы уже знаете, структура этого файла намного проще. В этом файле следует оставить XML-объявление и элемент policyDefinitions такими же, как вы указывали в самом ADMX-файле. Обязательно обратить внимание на то, что весь текст в этом файле должен быть в кодировке UTF-8. В элементах displayName и description укажем, что данный административный шаблон создается для антивирусного программного обеспечения Microsoft Security Essentials. В элементе stringTable следует указать идентификаторы и описания для каждого уникального объекта, который был создан в ADMX-файле. Наверное, самой сложной частью ADML-файла считается определение структуры элементов управления отдельных параметров групповой политики в элементе presentationTable. Так как в нашем случае только в одном параметре политики есть раскрывающиеся списки, необходимо указать дочерние элементы dropdownList с идентификаторами и описанием данных элементов управления. В итоге должен получиться следующий XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<!-- Dmitry Bulanov, 2011 © -->
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<displayName>Microsoft Security Essentials</displayName>
<description>Microsoft Security Essentials</description>
<resources>
<stringTable>
<string id="MicrosoftSecurityEssentials">Политики Microsoft Security Essentials</string>
<string id="MicrosoftSecurityEssentials_Help">Настройка различных параметров антивирусного программного обееспечения Microsoft Security Essentials</string>
<string id="SchedScanCheck">Выполнять запланированную проверку, только когда компьютер включен, но не используется</string>
<string id="SchedScanCheck_Help">Этот параметр позволяет выполнять запланированную проверку только в том случае, когда вы не пользуетесь компьютером.
При выборе параметра "Включить" будет включена данная опция.
Если вы выберите опцию "Отключить", то проверка будет выполняться в строго отведенное вами время</string>
<string id="ScanSchDayMode">Настройка периодичности сканирования Microsoft Security Essentials</string>
<string id="LimitCPUUsage">Ограничить использование ЦПУ при проверке</string>
<string id="LimitCPUUsage_Help">При помощи текущего параметра групповой политики вы можете ограничить использование ЦПУ при проверке. Значение по умолчнаию - 50%</string>
<string id="10perc">10%</string>
<string id="20perc">20%</string>
<string id="30perc">30%</string>
<string id="40perc">40%</string>
<string id="50perc">50%</string>
<string id="60perc">60%</string>
<string id="70perc">70%</string>
<string id="80perc">80%</string>
<string id="90perc">90%</string>
<string id="100perc">100%</string>
</stringTable>
<presentationTable>
<presentation id="LimitCPUUsage">
<text>Укажите лимит использования ЦПУ в процентах</text>
<dropdownList refId="LimitCPUUsageMode" defaultItem="0">Ограничить использование ЦПУ до: </dropdownList>
</presentation>
</presentationTable>
</resources>
</policyDefinitionResources>
После того как вы поместите созданные файлы в папку Policy Definitions на локальном компьютере или в папку SYSVOL на контроллере домена, данные политики будут отображаться в оснастке редактора управления групповыми политиками.
ЗаключениеИз этой статье вы узнали о параметрах групповой политики, основанных на данных системного реестра, которые называются административными шаблонами. Вкратце была рассмотрена история развития административных шаблонов, структура ADMX-файла – файла, не зависящего от языка, структура ADML-файла – файла языковых ресурсов. Также, в данной статье был написан административный шаблон для управления антивирусным программным обеспечением – Microsoft Security Essentials.
|
|