До появления Windows Vista задаваемые групповыми политиками значения реестра устанавливались с помощью файлов ADM со сложным собственным синтаксисом. Чтобы управлять дополнительными значениями реестра, не входящими в комплект поставки стандартных файлов ADM от Microsoft, необходимо было изучать этот синтаксис и создавать пользовательские файлы ADM. Кроме того, файлы ADM хранились вместе с каждым объектом групповой политики (GPO) в среде Active Directory® и каждый из этих объектов GPO вместе с сопутствующими файлами ADM реплицировались на все контроллеры домена в данном домене.
С выходом Windows Vista™ корпорация Майкрософт сделала значительный шаг вперед в области шаблонов реестра на основе групповых политик. В Windows Vista вводятся существенные изменения как формата файлов ADM, которые теперь называются файлами ADMX, так и способа их хранения. В данной статье я хотел бы рассмотреть внутреннее устройство файлов нового формата ADMX и обсудить их отличия от прежнего формата ADM. Я также остановлюсь на способах хранения таких файлов в среде Windows Vista.
Отличительные особенности формата ADMX
Наиболее значительным из отличий нового формата файлов ADMX от старого формата ADM, применявшегося со времен Windows NT® 4.0, является использование в файлах ADMX стандарта XML для описания параметров политик в реестре. Это удобно по ряду причин. Во-первых, для редактирования файлов XML существует гораздо больше средств, чем для файлов ADM. Во-вторых, благодаря схематизации XML со временем станет проще создавать средства, облегчающие использование тегов и помогающих создавать правильно оформленные файлы ADMX. Под схематизацией имеется в виду, что для каждого конкретного применения XML, например, для формата ADMX, существует документированная схема, описывающая возможные элементы и атрибуты и то, как они организованы. Далее в этой статье мы рассмотрим это на примере.
Другим важным отличием ADMX от ADM является вынесение строкового раздела главного файла ADMX в отдельный файл ADML для конкретного языка. Тем, кто знаком с файлами ADM, известно, что в конце каждого файла есть раздел, обозначенный тегом "[strings]", где можно присваивать значения строкам, которые должны появляться при использовании редактора групповых политик и административных шаблонов. В этом строковом разделе хранился, например, текст, отображавшийся при выборе вкладки «Объяснение» групповой политики. Проблема заключалась в том, что строки хранились в самом файле ADM и при необходимости использовать это файл в операционной системе Windows® на другом языке нужно было создавать новый файл ADM со строковым разделом на этом языке.
Ситуация тем более усложнялась, если, скажем, на французской версии Windows нужно было изменить существующий объект групповой политики, использовавший файлы ADM со строками на английском. Французский администратор в редакторе групповых политик столкнулся бы с английским языком. В Windows Vista эта проблема решена выделением раздела [strings] в языковой файл ADML на базе XML. Файл ADML может поставляться на любом поддерживаемом языке и может быть легко изменен для поддержки нового языка без необходимости модифицировать главный файл ADMX, в котором хранятся политики. И, что еще более важно, когда французский администратор станет редактировать объект GPO со своего компьютера под управлением Windows Vista, редактор групповых политик определит использование французской версии Windows и автоматически загрузит для этого объекта GPO французский файл ADML.
Все файлы ADMX и ADML, идущие в поставке Windows Vista, можно увидеть в папке c:\windows\policydefinitions (см. рис. 1).
Рис 1. Файлы ADMX в Windows Vista. Нажмите чтобы увеличить.
Обратите внимание на папку en-us вверху списка файлов на рис. 1. Это папка, содержащая файлы ADML конкретного языка для файлов ADMX из данной папки PolicyDefinitions—в данном случае, для языка Английский (США). Для каждого файла ADMX существует один файл ADML. На момент написания данной статьи Windows Vista по умолчанию содержит 132 файла ADMX/ADML. Есть еще одно существенное отличие Windows Vista от предыдущих версий: Объекты GPO, созданные в Windows XP, обычно имели пять файлов ADM, самым большим из которых был System.adm, содержащих элементы политики для большинства компонентов Windows, управляемых политиками. В Windows Vista в корпорации Майкрософт решили разбить файлы ADMX по функциям, что привело к значительному увеличению их количества. Каждый файл ADMX обычно относится к какому-то одному компоненту Windows (панели управления, DNS-клиенту, проводнику Windows и т.п.).
Внутреннее устройство файлов ADMX
Как было замечено ранее, существенным улучшением является то, что файлы ADMX создаются с помощью XML. Многие администраторы, однако, не умеют создавать файлы XML и тем более не понимают схему, используемую файлами ADMX для создания расширений политик. Написание учебника по созданию пользовательских файлов ADMX выходит за рамки данной статьи, и все же рассмотрим, как формируются файлы ADMX.
Любой файл ADMX или ADML можно открыть в любом текстовом редакторе, даже Блокноте, но вряд ли это будет иметь смысл, если редактор не понимает синтаксис XML. Я использую Visual Studio®, его функция IntelliSense® помогает завершать отдельные элементы. На рис. 2 можно увидеть первые несколько строк одного из файлов ADMX из поставки Windows Vista.
Рис 2. Нажмите чтобы увеличить.
Если вы не знакомы с XML, они могут казаться странными, но многие из этих элементов XML встречаются во всех файлах ADMX. Например, элемент policyNamespaces однозначно идентифицирует данный файл ADMX среди других таких файлов.
Те, кому доводилось создавать пользовательские файлы ADM в предшествующих версиях Windows, знают, что там был набор тегов, таких как Category, Policy, ListBox и ActionList, применяемых для определения параметров политики и отображавшихся в редакторе групповых политик. Многие из этих тегов в формате ADMX не изменились или изменились незначительно, но выглядят они совершенно иначе, поскольку представлены в виде XML. Например, я когда-то написал пользовательский файл ADM, активирующий различные типы ведения журнала в Windows для устранения неполадок при обработке групповых политик. Раздел этого файла ADM показан на рис. 3.
Рисунок 3.
Я перенес этот файл в новый формат ADMX, как показано на рис. 4.
Рис 2. Нажмите чтобы увеличить.
Во многих отношениях этот фрагмент файла ADMX проще и понятнее своего родственника в формате ADM, он лаконичнее. Элемент политики определяет задачу данной политики (ведение журнала перенаправления папки). Атрибуты, начинающиеся с $(string., ссылаются на соответствующий строковый элемент ADML. Атрибуты key и valuename, как следует из их названий, указывают на ключ и значение реестра, изменяемые данной политикой. Элемент parentCategory определяет, отображается ли эта политика в иерархии административных шаблонов редактора групповых политик. Элемент supportedOn указывает, в какой версии операционной системы поддерживается данная политика, и, наконец, элементы enabledvalue и disabledvalue определяют значения, которые записываются в реестр при включении и отключении данной политики.
Это довольно простая политика типа «включить-выключить». Как и при использовании синтаксиса ADM, с помощью редактора групповых политик можно создавать более сложные элементы пользовательского интерфейса. В таких случаях синтаксис файлов ADMX несколько усложняется и включает атрибут представления, ссылающийся на часть файла ADML, в которой находятся текстовые подписи элементов пользовательского интерфейса. Однако во всем остальном синтаксис файлов ADMX не намного сложнее. Следует помнить, что названия некоторых тегов в ADMX изменились по сравнению с ADM. Например, в файлах ADM были теги "edittext" и "listbox". В файлах ADMX эти теги называются соответственно "text" и "list". В файле ADML им будут соответствовать записи, указывающие на текст, который будет отображаться с этими элементами.
Как вам, вероятно, уже известно, администратор может загружать старые пользовательские файлы ADM в редактор объектов групповых политик Windows Vista. Меня часто спрашивают, предоставит ли корпорация Майкрософт утилиту для преобразования пользовательских файлов ADM в синтаксис ADMX. На самом деле корпорация Майкрософт совместно с FullArmor Corp. выпустила бесплатное средство под названием ADMX Migrator. Эта программа выполняет две функции. Во-первых, она преобразовывает старые пользовательские файлы ADM в формат ADMX (см. пример использования данной программы для преобразования моего файла gpolog.adm на рис. 5).
Рисунок 5. ADMX Migrator.
Во-вторых, она включает редактор ADMX Editor, с помощью которого можно создавать новые файлы ADMX. Эту программу можно загрузить по адресу go.microsoft.com/fwlink/?LinkID=77409.
Хранение файлов ADMX
Еще одним примечательным нововведением является способ хранения файлов ADMX и ADML. В версиях Windows, предшествующих Windows Vista, при редактировании объектов GPO файлы ADM автоматически копировались с локального компьютера, на котором производилось редактирование, в папку SYSVOL объекта GPO на котроллере домена в домене Active Directory. В последствии эти файлы ADM реплицировались на каждый контролер домена в домене для каждого создаваемого объекта GPO. Это приводило к нерациональному использованию полосы пропускания сети и дискового пространства, особенно в больших средах с десятками и сотнями объектов GPO. В Windows Vista в данной ситуации происходит противоположное. По умолчанию при создании объекта GPO на основе службы каталогов Active Directory на компьютере под управлением Windows Vista отображающиеся в редакторе групповых политик политики административных шаблонов загружаются из папки c:\windows\policydefinitions на том же компьютере.
Файлы ADMX и ADML не копируются в сетевую папку SYSVOL, а используются локально. Это позволяет избежать нагрузки на сеть и системы хранения среды групповых политик, неизбежной при использовании файлов ADM. И это не единственный положительный момент. Windows Vista также поддерживает центральное хранилище — базу данных административных шаблонов. Таким образом обеспечивается эффективное управление файлами ADMX, используемыми для редактирования объектов GPO, независимо от того, откуда производится редактирование. Это достигается путем копирования всех файлов ADMX и ADML официальной поставки и созданных пользователем в единое место в сети и последующего обращения к ним вместо локальных файлов при редактировании групповых политик с рабочих станций под управлением Windows Vista. Настройка центрального хранилища — несложная задача, которую достаточно выполнить один раз для данного домена. Пошаговые инструкции по созданию хранилища приведены в боковой врезке "Создание центрального хранилища".
Заключение
Новый формат файлов ADMX в Windows Vista является однозначным улучшением по сравнению с файлами ADM, применявшимися в предыдущих версиях Windows. Использование в этих файлах XML облегчает поддержку редактирования и поиска. Перемещение строк с текстом на конкретном языке в отдельные файлы обеспечивает бесшовное редактирование групповых политик, а применение центрального хранилища устраняет необходимость в хранении и обновлении всех объектов GPO с копиями файлов ADM. Принимая во внимание все сказанное, овладение приемами работы с файлами ADMX представляется разумным шагом.
Создание центрального хранилища
Создать центральное хранилище относительно несложно. Чтобы создать хранилище в домене службы каталогов Active Directory:
Шаг 1: Откройте Проводник и перейдите в общую папку SYSVOL контроллера домена – эмулятора PDC в вашем окружении (можно использовать любой контроллер домена, но обычно изменения групповых политик сосредоточены именно на владельце роли PDC). Шаг 2: Войдите в папку Policies в папке SYSVOL и создайте новую папку PolicyDefinitions. Шаг 3: Скопируйте содержимое папки C:\windows\policydefinitions на вашей рабочей станции под управлением Windows Vista в новую папку PolicyDefinitions, включая языковую папку ADML (например en-us на компьютере с региональными настройками США).
После того, как файлы ADMX и ADML будут скопированы в папку центрального хранилища, редактор объектов групповых политик в Windows Vista начнет обращаться к этим файлам и игнорировать локальные файлы.
Даррен Мар-Елия (Darren Mar-Elia) является обладателем звания Microsoft MVP по групповым политикам, создателем популярного сайта, посвященного групповым политикам—www.gpoguy.com и соавтором руководства Microsoft Windows Group Policy Guide (Microsoft Press, 2005). Он также является техническим директором и основателем компании SDM Software, Inc. С ним можно связаться по адресу Darren@gpoguy.com. Из February 2007 выпуска TechNet Magazine.