Обновляем ADMX шаблоны групповых политик в центральном доменном хранилище до уровня Windows 8.1 и Windows Server 2012 R2
На первоначальном этапе внедрения новых ОС нам нужно подготовить доменную инфраструктуру применения групповых политик – расширить набор шаблонов групповых политик для поддержки новых систем, расположенный в центральном хранилище шаблонов в сетевой папке, например в нашем случае это будет папка \\holding.com\SYSVOL\holding.com\Policies\PolicyDefinitions\
Перед нами стоит задача – собрать все новые и обновлённые *.ADMX файлы шаблонов групповых политик и соответствующие им английские и русские языковые *.ADML файлы (чтобы администраторы в домене могли при необходимости использовать для редактирования групповых политик оснастку Group Policy Management (GPMC) на обоих языках).
Для выполнения этой задачи нам понадобится 4 дистрибутива (*.ISO файлы), из которых мы будем извлекать соответствующие файлы:
- Windows 8.1 RTM English (32 или 64 бита)
- Windows 8.1 RTM Russian (32 или 64 бита)
- Windows Server 2012 R2 RTM English
- Windows Server 2012 R2 RTM Russian
Создадим структуру временных папок, например C:\Temp\ADMX , в которой подкаталоги \W81_EN , \W81_RU , \WS2012R2_EN , \WS2012R2_EN , \WS2012R2_RU будут использоваться для извлечения ADMX/ADML файлы из соответствующих систем а подкаталог \WIM будет использоваться для временного монтирования WIM-образов из состава дистрибутивов соответствующих систем.
Общий порядок выполняемых действий с каждым из 4 перечисленных дистрибутивом такой:
1) Монтируем в виртуальный DVD-привод ISO-образ дистрибутива;
2) Внутри смонтированного ISO-образа находим WIM-образ содержащий копию ОС и изучив его монтируем эту копию ОС во временный подкаталог \WIM;
3) Внутри смонтированного WIM находим файлы ADMX/ADML и копируем их в соответствующие подкаталоги;
4) Размонтируем WIM-образ;
5) Размонтируем ISO-образ.
Итак, рассмотрим эту цепочку действий на примере дистрибутива Windows Server 2012 R2 RTM English. Монтируем ISO-образ дистрибутива в командной строке вызывая командлеты PowerShell:
При указании полного пути ISO-файла образа обязательно используем одинарные кавычки, т.к. использование двойных кавычек в данной ситуации по непонятной для меня причине вызывают у PS ошибку.
В нашем примере, в результате выполнения этой команды, образ смонтировался с буквой диска H:\
Находим в смонтированном образе файл H:\sources\install.wim
Теперь нам нужно забраться внутрь этого файла и извлечь оттуда файлы шаблонов групповых политик. Чтобы узнать индекс нужной нам системы внутри WIM-образа выполним
В данном примере нас интересует система с индексом 4. Монтируем эту систему в режиме «только чтение» во временную папку \WIM командой:
Теперь забираемся в папку C:\Temp\ADMX\WIM и из подкаталога \Windows\PolicyDefinitions\ копируем всё содержимое в каталог C:\Temp\ADMX\WS2012R2_EN\
Выходим из каталога C:\Temp\ADMX\WIM и отмонтируем образ ОС от этого каталога:
Теперь отмонтируем из виртуального DVD-привода (в нашем случае H:) ISO-образ:
Проделаем описанную последовательность действий для других трёх дистрибутивов ОС.
Результаты сбора файлов получились у меня следующие:
\W81_EN — 173 файла ADMX, 173 файла ADML в подкаталоге en-US
\W81_RU — 173 файла ADMX, 173 файла ADML в подкаталоге ru-RU
\WS2012R2_EN — 176 файлов ADMX, 176 файлов ADML в подкаталоге en-US
\WS2012R2_RU — 176 файлов ADMX, 174 файла ADML в подкаталоге ru-RU и 2 файла ADML в подкаталоге en-US
Проверка показала, что 167 одноимённых файлов ADMХ во всех 4 подкаталогах одинаковы по своему содержимому, но по другим файлам между клиентскими и серверными ОС есть различия. Ч тобы было понятно, зачем мы собираем шаблоны групповых политик с разных систем (клиентских и серверных), — приведём простой пример сравнения шаблонов, которые мы извлекли из этих систем.
Сравним по содержимому каталоги с шаблонами GPO Windows 8.1 и Windows Server 2012 R2 с помощью программы WinMerge 2.14.0
В результате сравнения нам видны файлы шаблонов GPO *.ADMX и соответствующие им языковые файлы *.ADML которые есть в Windows 8.1, но нет в Windows Server 2012 R2:
…и файлы шаблонов GPO *.ADMX и соответствующие им языковые файлы *.ADML которые есть в Windows Server 2012 R2, но нет в Windows 8.1:
Проанализировав ситуацию, собираем все файлы из 4 подкаталогов в один общий подкаталог, например C:\Temp\ADMX\W81_WS2012R2\ . В конечном счете у меня получилось в этом каталоге 182 *.ADMX файла, и 182 *.ADML файла в подкаталоге en-US и 180 *.ADML файлов в подкаталоге ru-RU
Управление административными шаблонами групповых политик
Административными шаблонами (Administrative Templates) называются параметры групповой политики, основанные на изменении параметров реестра. Как вы знаете, в операционных системах Windows большинство настроек хранится в системном реестре, и с помощью административных шаблонов этими настройками можно централизованно управлять.
Административные шаблоны есть как в части пользователей, так и компьютеров. Соответственно параметры политик, указанные на стороне пользователя, применяются к пользователям, а на стороне компьютера — к компьютерам.
Примечание. Если быть более точным, то политики административных шаблонов в конфигурации компьютера модифицируют значения параметров в разделах HKLM\Software\Policies и HKLM\Software\Microsoft\WindowsCurrentVersion\Policies, а административные шаблоны в конфигурации пользователя — HKCU\Software\Policies и HKCU\Software\Microsoft\Windows\CurrentVersion\Policies.
Давайте на практике посмотрим, что из себя представляют административные шаблоны и как они работают. Для примера возьмем первый попавшийся параметр «Disable context menus in the Start Menu», расположенный в разделе «Start Menu and Taskbar» конфигурации компьютера.
Как следует из описания, этот параметр отвечает за показ контекстного меню в меню Пуск.
Технически административные шаблоны представляют собой пару XML-файлов: не связанный с языком файл (ADMX) и набор зависящих от языка файлов (ADML). По умолчанию административные шаблоны расположены локально на компьютере, в папке C:\Windows\PolicyDefinitions. Каждый файл ADMX соответствует определенному разделу групповой политики, соответственно за раздел «Start Menu and Taskbar» отвечает файл StartMenu.admx. Откроем его в текстовом редакторе и найдем секцию, отвечающую за интересующий нас параметр.
В ней содержится имя и область применения параметра, ключ реестра, отвечающий за его настройку, а также ссылки на описание, которое находится в соответствующем языковом файле.
Переходим к языковому файлу. Для каждого языка имеется специальная папка, к примеру файлы для английского языка расположены в папке en-US. Заходим в папку с нужным языком, открываем файл StartMenu.adml и находим строки с нашим параметром. В них хранится название параметров и их описание, которое мы видим в редакторе при редактировании политики.
Ну а результатом применения данной политики будет изменение значения параметра реестра «DisableСontextMenusInStart» в разделе HKLM\Software\Policies\Microsoft\Windows\Explorer.
Таким образом, административные шаблоны представляют из себя самую обычную инструкцию в формате XML по изменению параметров реестра (ADMX) и описание изменяемых параметров, отображаемых в оснастке редактора групповой политики (ADML).
Создание центрального хранилища
До выхода Windows Server 2008 и Vista административные шаблоны имели расширение adm и представляли из себя самые обычные текстовые файлы. У таких административных шаблонов был ряд недостатков. К примеру, в многоязыковой организации требовалось создавать отдельные ADM-файлы для каждого языка, соответственно при изменении параметров приходилось редактировать каждый шаблон отдельно. Кроме того, при использовании такие шаблоны сохранялись как часть объекта групповой политики, и если шаблон использовался в нескольких политиках, то он сохранялся несколько раз. Это увеличивало размер папки SYSVOL и усложняло ее репликацию.
Переход на формат ADMX/ADML изменил ситуацию в лучшую сторону. И одним из плюсов этого перехода стала возможность создания централизованного хранилища административных шаблонов. Использование централизованного хранилища позволяет решить проблему увеличения SYSVOL, поскольку папка ADM больше не создается в каждом объекте групповой политики, а контроллеры домена не хранят и не реплицируют лишние копии ADM-файлов. Это способствует уменьшению трафика репликации SYSVOL между контроллерами домена, а кроме того упрощает процедуру управления административными шаблонами в домене.
По умолчанию редактор групповых политик загружает шаблоны из локальной папки C:\Windows\PolicyDefinitions. Для создания центрального хранилища необходимо на любом контроллере домена взять эту папку и скопировать ее в папку SYSVOL по пути \\имя домена\SYSVOL\имя домена\Policies. Так для домена test.local путь будет выглядеть как \\test.local\SYSVOL\test.local\Policies.
Если после этого открыть объект групповой политики и перейти в раздел Administrative Template, то в качестве источника шаблонов будет указано центральное хранилище (retrieved from the central store).
Файлы в центральном хранилище реплицируются на все контроллеры домена, что очень удобно при обновлении шаблонов.
Обновление шаблонов
Операционные системы Windows постоянно обновляются, получают новые возможности. И для того, чтобы этими возможностями можно было управлять с помощью групповых политик, необходимо регулярно обновлять административные шаблоны.
Для наглядности приведу пример. В Windows 10 (начиная с версии 1607) появилась возможность использовать длинные пути файлов. Политика, отвечающая за это, находится в разделе «Computer configuration\Administrative templates\System\Filesystem» и называется «Enable Win32 long paths».
Но если не обновить административные шаблоны, то нужный нам параметр по указанному пути можно и не найти.
К счастью, Microsoft регулярно выпускает обновления административных шаблонов, нам надо только найти их и установить. На данный момент наиболее свежие шаблоны это Administrative Templates (.admx) for Windows 10 May 2019 Update (1903) v3.0 .
Установщик представляет из себя обычный msi-файл, который можно запустить на любом компьютере.
После запуска надо указать папку, в которую будут распакованы шаблоны
и дождаться окончания процесса распаковки.
Полученные шаблоны надо просто скопировать в хранилище, заменив имеющиеся. Для подстраховки старые шаблоны можно сохранить. Языковые файлы нужно скопировать не все, а только нужные, например для русского и английского языка.
В результате обновления потерянный параметр появился на своем законном месте.
Добавление шаблонов
С помощью административных шаблонов можно управлять не только настройками операционной системы, но и различных приложений. К примеру, мы хотим централизованно управлять настройками программ из пакета Microsoft Office (Word, Excel. Outlook и т.д.) на клиентских компьютерах в домене.
Для этого нам потребуется загрузить с сайта Microsoft и установить специальный пакет для MS Office. Обратите внимание, что для каждой версии предназначен свой набор административных шаблонов. Если в компании используются различные версии Office, то для каждой используемой версии необходимо загружать свою версию шаблонов:
Для примера возьмем набор для Office 2016 и установим его. Принцип примерно такой же, как и при обновлении шаблонов — запускаем установщик,
выбираем папку для распаковки шаблонов
и получаем набор файлов ADMX\ADML.
В нашем примере файлы шаблонов находятся в папке admx. Берем их и копируем в общее хранилище, к остальным шаблонам.
В результате в разделе Administrative Templates добавляются новые разделы, с помощью которых можно управлять настройками офисных программ.
Таким образом можно добавлять шаблоны и для ПО от сторонних производителей, например Google Chrome, Adobe Reader и многих других. Большинство крупных разработчиков выпускают административные шаблоны для своих программ. Ну а если готового шаблона нет, то его можно создать самому, это не так уж и сложно.