Как импортировать reg файл через gpo

Обновлено: 07.07.2024

Я загрузил файл .reg с некоторыми ключами реестра, которые я хотел бы применить на машине Windows. Поскольку необходимо применить тот же ключ, я хотел бы сделать это напрямую с помощью политик GPO.

Я нашел несколько руководств, однако никто явно не указывает способ прямой отправки содержимого файла .reg.

Не могли бы вы пожалуйста, объясните мне чистый способ сделать это?

ЗАМЕЧАНИЕ: Инструкции основаны на предположении, что значения реестра не отличаются для 64-битной и 32-битной Windows и что в значениях reg нет никаких переменных.

  1. Откройте REG файл (в Блокноте) и посмотрите, предназначен ли файл REG для текущего пользователя (HKCU; HKEY_CURRENT_USER) или .
  2. Задокументируйте все ключи и значения.
  3. Импортируйте файл REG на некоторый ПК.
  4. Создайте новый GPO на DC и Edit
  5. Если ключи reg
    • находятся в ведении HKCU, перейдите по адресу: Конфигурация пользователя \ Preferences \ Windows Settings \ Registry
    • НЕ находится в HKCU, перейдите по адресу: Конфигурация компьютера \ Предпочтения \ Настройки Windows \ Реестр
  6. Щелкните правой кнопкой мыши «Реестр»
  7. Выберите параметр «Мастер создания реестра»
  8. Выберите параметр «Другой компьютер» и введите имя ПК, на который вы импортировали Файл REG
  9. Выберите все значения, которые вы задокументировали на шаге «2».
  10. Завершите работу мастера
  11. Если ключи reg
    • находятся под HKCU: Свяжите эту политику с организационным подразделением, в котором ваши пользователи
    • НЕ находятся под HKCU: Свяжите эту политику с OU, где у вас есть компьютеры домена

ПРИМЕЧАНИЕ: Если вам нужно применить это только к определенным пользователям домена или компьютерам домена, задайте вопрос об использовании «фильтрации безопасности GPO». Если вам нужно применить это только к определенным пользователям домена, когда они подключены только к определенным компьютерам домена, задайте вопрос об использовании «Фильтрация безопасности GPO» и «Таргетинг на уровне элементов предпочтений GPO».


В очередной статье из цикла «конспект админа» мне хотелось бы освежить в памяти несколько нюансов использования групповых политик. Заодно поразвлекаемся с созданием своих шаблонов и с автоматизацией работы с этими самыми политиками.

Я не буду рассказывать, что такое групповые политики, и остановлюсь лишь на основных моментах, которые стоит иметь в виду при работе с ними.

В системах Windows помимо доменных существуют и локальные групповые политики ― управлять ими можно при помощи оснастки gpedit.msc на системах редакции Professional и выше. Часто считается, что без домена можно настраивать локальные групповые политики только для всех пользователей на компьютере. Это не совсем верно ― с выходом Windows Vista появилась возможность использовать множественную локальную групповую политику или MLGPO. Этот механизм позволяет настраивать отдельные политики для разных пользователей.

Добраться до него можно через вызов консоли mmc: при добавлении оснастки «Управление объектами групповой политики» нажать кнопку «Обзор». Далее на вкладке «Пользователи» уже можно выбрать конкретного пользователя или группу «Администраторы» и «Не администраторы». К сожалению, управление для группы пользователей не реализовано.



Управление групповой политикой для отдельных пользователей.

Бывало и так, что на отдельностоящем терминальном сервере разворачивали Active Directory только для того, чтобы отдельному пользователю настроить поведение драйвера для EasyPrint. Не надо так.

При добавлении доменных групповых политик стоит помнить про порядок их применения ― политика, примененная последней, будет обладать наивысшим приоритетом (да и на собеседованиях часто спрашивают).

Итак, предположим, что у нас есть компьютер в домене и четыре групповые политики: локальная на этом компьютере; политика на подразделение, в котором находится компьютер; политика на домен и политика на лес. Порядок их применения будет следующим:

  1. Локальная групповая политика.
  2. Групповая политика сайта.
  3. Групповая политика домена.
  4. Групповая политика верхнего подразделения.
  5. Групповая политика дочернего подразделения.

То есть чем ближе к объекту, тем приоритетнее, за исключением локальной групповой политики. Если надо отключить применение вышестоящих политик, то ставьте блокировку наследования.



Блокировка наследования.

Любую групповую политику можно условно разделить на две конфигурации ― пользователя и компьютера. Обычно политики с настройками компьютеров назначаются на подразделение, в котором находятся компьютеры. А политики с настройками пользователей ― на пользователей.

Если надо применить настройки компьютера к подразделению с пользователями и наоборот, используют так называемое замыкание групповой политики. Например, такая настройка пригодится, когда нужно применить специфические политики к пользователям для работы на терминальных серверах.

Работа замыкания настраивается непосредственно в политике ― «Настройка компьютера ― Административные шаблоны ― Система ― Режим обработки замыкания пользовательской групповой политики». Подробнее про механизм уже писали в статье про использование Merge\Replace в GPO. Я лишь добавлю, что режим замыкания групповой политики ― тоже частый вопрос на собеседовании.



Настройка замыкания групповой политики.

Физически доменные групповые политики находятся в папке SYSVOL на контроллерах домена. Папка реплицируется между контроллерами. Каждая групповая политика выглядит как папка с именем в виде GUID.



Групповые политики домена.

Правила фильтрации, настраиваемые через редактор групповой политики, соответствуют настройкам прав NTFS на соответствующую подпапку.

Говоря о правилах фильтрации, нельзя не упомянуть обновление MS16-072, которое «сломало» групповые политики. Теперь для того чтобы работали правила фильтрации, надо добавлять к каждому фильтру правило «на чтение», но не «на применение» группе Domain Computers.

В каждой папке с групповой политикой существуют подпапки Machine и User, соответствующие настройкам пользователя и компьютера. Если углубиться в подпапки, можно легко понять структуру групповой политики:

  • В корне папки находится файл GPT.ini с настройками групповой политики, такими как ее название.
  • В подпапках Machine и User сидят файлы registry.pol с настройками соответствующих веток реестра.
  • По пути Microsoft\Windows NT\SecEdit можно найти шаблон настроек безопасности ― GptTmpl.inf.
  • В подпапке Preferences находятся предпочтения групповых политик, представляющие из себя подпапки с файлами xml.
  • В подпапке Applications сидят дистрибутивы для развертывания через групповые политики.
  • В папке Scripts находятся скрипты на logon\logoff для пользователя и startup\shutdown для компьютера.
  • В папке Documents and Settings есть настройки перенаправления пользовательских папок.
  • Наконец, в папке Adm находятся устаревшие шаблоны групповой политики.

Подробнее про структуру можно почитать в материале Group Policy Basics, поэтому перейдем сразу к шаблонам.

По сути своей административные шаблоны ― это специальные файлы с инструкциями по изменению клиентского реестра (ветки HKCU или HKLM) и настройками отображения изменяемых параметров через «Управление групповой политикой». В принципе, реестр можно менять и через «Предпочтения групповых политик». Но разница здесь не только в красивом интерфейсе.


Способ изменения реестра Как ведет себя при удалении политики со стандартными настройками Можно ли изменить параметр вручную Можно ли изменить параметр через приложение
Шаблоны Параметр реестра восстанавливается на значение «по умолчанию», если настройки по умолчанию есть в шаблоне - -
Предпочтения политик Параметр реестра не изменяется + +

Сравнение предпочтения групповых политик и административных шаблонов.

Другими словами, настройка реестра через шаблоны групповых политик более строгая. Тогда как настройка через предпочтения групповых политик напоминает периодическое применение reg-файла. Конечно, предпочтения позволяют не только менять параметры реестра, но и довольно гибко настраиваются. Тем и ценны.

Это актуально при изменении ветки Policies, и настраиваемое приложение должно хранить свои настройки в реестре. Простое изменение параметров через Предпочтения и Шаблоны будет работать схожим образом, только шаблоны могут оказаться удобнее.

До появления Windows Vista\2008 в качестве шаблона групповых политик брали исключительно стандарт .adm. Будучи с простой структурой, которую было легко редактировать вручную, этот стандарт обладал и рядом недостатков:

  • Для каждого языка приходилось создавать отдельный файл шаблона.
  • Файл шаблона физически находился в папке с групповой политикой. При использовании одного и того же шаблона он сохранялся в каждую папку, что увеличивало занимаемое место и время репликации.
  • Не поддерживались мультистроковые параметры и параметры QWORD.

На замену устаревшему стандарту появился новый. Новые шаблоны представляют собой два файла: сам шаблон, не зависимый от языка ― .admx и языковой «пакет» к нему ― файл .adml. Теперь шаблоны можно «положить» в центральное хранилище, и обращаться к нему, не плодя одинаковые файлы в папке SYSVOL.

Не обошлось без ложки дегтя ― теперь содержимое файла представляет собой популярный в индустрии формат XML. И создавать новые шаблоны в блокноте стало уже не так удобно.

Под большинство параметров, которые могут понадобиться, шаблоны уже существуют. Кроме того, многие производители приложений выпускают свои административные шаблоны. Вот несколько примеров:

Если возникает необходимость разработать и внедрить свой административный шаблон, то самый простой вариант ― это создать старый файл .adm и сконвертировать его в admx специальной утилитой. Вариант посложнее ― начинать сразу с .admx.

Для начала разберем простой пример. Создадим шаблон групповой политики, который позволит нам включать и выключать отображение скрытых и системных файлов, а заодно и отображение расширений.

Сразу скажу, что это можно провернуть через «Предпочтения групповых политик» ― в параметрах панели управления ― опции папки. Но мы легких путей не ищем и заодно не хотим, чтобы параметры отображения можно было менять вручную.

За необходимые нам параметры отвечают три ключа в реестре:

  • Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden.
  • Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt.
  • Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden.
Содержимое ADM-шаблона, который разберем далее, под спойлером.

Разберем подробнее синтаксис файла.

  • CLASS. Может принимать значение USER или MACHINE ― в зависимости от класса будет изменятся ветка реестра HKCU или HKLM соответственно.
  • CATEGORY. Строка, в которой задается имя «папки» политики.
  • POLICY. В строке задается название конкретной политики ― у нас таких будет три.
  • KEYNAME. Путь в реестре к изменяемым параметрам.
  • EXPLAIN. Отсылка к «переменной» с объяснением настройки.
  • VALUENAME. Название изменяемого параметра в реестре.
  • VALUEON**VALUEOFF**. Значение, которое будет принимать параметр при включении и выключении его в политике.
  • [strings]. Секция со значениями переменных, которые я использовал для текстовых строк. Можно их не использовать, но тогда могут быть проблемы из-за русского языка.

Помимо задействованных опций есть и другие, например:

  • EDITTEXT. Текстовое поле для ввода.
  • NUMERIC. Поле для ввода цифр.
  • CHECKBOX. Список, где можно отмечать параметры «галочками».
  • COMBOBOX. Список с «переключателем»
  • DROPDOWNLIST. Выпадающий список.
  • LISTBOX. Список для ввода нескольких элементов.

Подробнее со всеми параметрами можно ознакомится в разделе MSDN ADM Format.

Установить новый шаблон не просто, а очень просто ― достаточно щелкнуть правой кнопкой мыши по пункту «Административные шаблоны», выбрать «Добавление и удаление шаблонов» и добавить наш свежесозданный шаблон.



Добавленный шаблон.

После установки шаблона он отобразится в ветке «Классические административные шаблоны».


Теперь можно сконвертировать наш шаблон в .admx с помощью утилиты faAdmxConv из ADMX Migrator.



Конвертируем шаблон.

После конвертации получившийся шаблон .admx и папку Ru-ru с файлом локализации .adml нужно скопировать в папку %Systemroot%\PolicyDefinitions для локальной политики или в папку Sysvol\PolicyDefinitions на контроллере домена.



Установленный шаблон .admx.

Полный листинг получившегося шаблона и файла локализации под спойлером.

Действительно, xml в новом формате читается чуть хуже, чем старый .adm. Для облегчения работы с новым форматом в поставке ADMX Migrator есть утилита faAdmxEditor.msc. Помимо этой утилиты есть и скрипты для конвертации reg-файлов в шаблоны, и сторонние платные утилиты.

Конечно же, можно обойтись без вот-этого-всего и разобраться самостоятельно ― оставлю это в качестве домашнего задания. Благо на портале MSDN есть подробное описание XML-схемы, и есть неплохие материалы с примерами в сети. Например, «Административные шаблоны групповой политики».

Теперь перейдем к автоматизации.

Работать с групповыми политиками из командной строки довольно тоскливо. Основных инструментов можно выделить три.

PowerShell. Есть набор командлетов для резервного копирования, восстановления и управления групповыми политиками. Создание новых политик ограничено ― можно лишь изменять реестр. Впрочем, в большинстве случаев и этого достаточно. В качестве примера создадим групповую политику, которая отключит автоматическое обновление Adobe Reader DC.

За отключение автоматического обновления отвечает ключ реестра bUpdater в ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\DC\FeatureLockDown]. Установив параметр в 0, мы отключим опцию.

Создание групповой политики на PowerShell будет выглядеть так:


Свежесозданная групповая политика.

Полный список и описание командлетов доступны в материале Technet Group Policy Cmdlets in Windows PowerShell.

Интерфейс COM к GPMC (консоли управления групповой политикой). Способ позволяет сделать с политиками многое, на любом языке программирования, поддерживающим COM-интерфейсы. К сожалению, популярность он не приобрел и примеров в сети довольно мало, несмотря на богатое описание методов интерфейса на портале MSDN. Немногочисленные примеры использования доступны для загрузки в галерее Technet.

Сделаем бэкап локальной групповой политики командой

В папке C:\Temp появится подпапка с GUID по структуре схожая с доменными групповыми политиками:

Теперь развернем registry.pol в текстовый файл:

Синтаксис текстового файла очевиден. Добавим в него значения реестра для отключения автоматического обновления «Акробата»:



Добавленный в файл параметр реестра.

Теперь останется завернуть наш reg.txt обратно в registry.pol и импортировать изменившийся файл обратно в локальную групповую политику:

Все эти махинации, конечно же, можно завернуть в один скрипт и использовать для массового изменения локальной групповой политики привычным инструментом для запуска команд на удаленных компьютерах. Подробнее про методы запуска команд можно почитать в нашей статье «1000++ способ запуска команд на удаленном компьютере».

Конечно же, зная структуру доменной групповой политики, ничто не мешает сделать удобный именно вам инструмент для создания и управления политиками. Поделитесь в комментариях, есть ли у вас свои способы настройки реестров пользовательских машин?

Насчет добавления ключа к реестру. Я поступаю так: в расшаренную папку кладется батник, имеющий ссылку на рег - файл. Например следующего содержания:

или (для Windows 2000/XP)
Windows Registry Editor Version 5.00

Обратите внимание на то, что буквы должны быть большие. Кроме этого в первой строке ничего быть не должно. После этого текста ОБЯЗАТЕЛЬНО должна быть пустая строка. Затем, указывается раздел реестра, в котором надо прописать или изменить какие-то параметры. Название раздела должно быть заключено в квадратные скобки [. ]. Ниже прописываются параметры, которые надо добавить, по одному параметру в строке. Если вам надо провести изменения в нескольких разделах, то вы должны оставлять одну пустую строку между последним параметром предыдущего раздела и названием следующего раздела. Может немного запутанно, но вот как это должно выглядеть:

Последняя строка в файле должна быть ПУСТОЙ. После того, как вы создали такой файл, просто запустите его как обычную программу, вам будет выдан запрос о необходимости провести изменения в реестре, и после положительного ответа информация из файла будет импортирована. О результатах импортирования Windows сообщит в появившемся после этого окне.

Примечание: Windows 2000/XP обладает обратной совместимостью и может обрабатывать файлы, созданные в Windows 9x. Но если вы экспортировали файл в Windows XP и перенесли его на Windows 9x, то вручную измените первую строчку на REGEDIT4

Теперь пару слов о параметрах, которые можно добавлять. Как вы, наверное, обратили внимание, в приведенном выше примере добавляются параметры с помощью строк типа "param1"="znachenie1". Т.е. таким образом добавляется СТРОКОВЫЙ параметр с именем "param1" и значением "znachenie1". Но ведь существуют еще и параметры двоичные и DWORD. Формат записи для их добавления несколько другой. Для параметров типа DWORD используется строка

Здесь "param" - имя параметра, dword - указывает на тип этого параметра (буквы должны быть обязательно маленькие!) и после двоеточия следует значение из восьми цифр в шестнадцатеричном (!) формате. Однако большинство параметров DWORD имеют значение либо 0, либо 1, значит, вы должны написать соответственно либо 00000000, либо 00000001 вместо значков ХХХХХХХХ. Пробелы в строке не допускаются.

Для добавления двоичного параметра формат записи несколько иной:

Теперь расшифрую эту строку. Ну, с названием параметра все ясно, после знака "=" идет hex, т.е. указывается, что это будет двоичный параметр, затем идут шестнадцатеричные числа, отделенные запятой. Например, если вам надо добавить двоичный параметр равный "be 00 00 00", то вы пишете строку

В реестре существуют параметры "По умолчанию" ("Default"). Чтобы присвоить им какое-то значение через reg-файл, надо добавить такую строку:

Здесь значок @ показывает, что у нас присваивается значение параметра "По умолчанию". Обратите внимание на то, что он не заключается в кавычки.

С помощью reg-файлов можно не только устанавливать новые параметры, но и удалять их. Например, для удаления раздела из реестра надо перед его именем в квадратных скобках поставить символ "-". Вот как это выглядит:

Благодаря этой записи, подраздел "QuickStart" из раздела "QuickSoft" будет удален со всем содержимым.

Для удаления отдельных параметров используйте следующий синтаксис:


Параметры командной строки

Редактор реестра можно запускать с некоторыми ключами

[strings]
categoryname="Desktop Settings"
policyname="Default mail client"
explaintext="This policy default mail client"
labeltext="Mail client"
Outlook="Outlook Express"
Bat="The Bat!"

При импортировании этого шаблона в Computer Configuration в Административных шаблонах появляется категория Desktop Settings, а внутри пусто. В чем проблема?

PolicyMaker Registry Extension

The free PolicyMaker™ Registry Extension is a true client side extension (CSE) to Group Policy, providing full registry management capability. The interface is simple and configurations are communicated to client computers through Group Policy. When Group Policy refreshes on a client computer, the registry is updated.

Настройка макета меню Пуск и панели задач в Windows 10 через групповые политики

В домене Active Directory вы можете централизованно управлять макетом начального экрана (Start Layout) меню Пуск и панели задач на компьютерах пользователей Windows 10 с помощью групповых политик. Это позволяет назначить одинаковые настройки, вид и местоположение значков и ярлыков в меню Пуск и панели задач пользователям различных подразделений компании в зависимости от используемых програм и убедиться, что все рабочие места настроены одинаково.

Экспорт/импорт макета меню Пуск в Windows 10 с помощью PowerShell

Самый простой способ получить макет стартового меню Пуск в Windows 10 — вручную настроить внешний вид и элементы рабочего стола на эталонном ПК. Создайте ярлыки (плитки) для необходимых приложений, закрепите и сгруппируйте их, удалите ненужные элементы. Затем вы можете экспортировать текущее описание элементов стартового меню в xml файл.

Шаблон начального экрана Windows 10

Экспортировать текущие настройки можно с помощью PowerShell командлета Export-StartLayout:

Export-StartLayout PowerShell

Вы можете вручную импортировать данный шаблон стартового меню на другом компьютере Windows 10 с помощью командлета Import-StartLayout:

Import - StartLayout – LayoutPath c : \ StartLayoutW10 . xml – MountPath c : \

Параметр MountPath указывает на путь, куда смонтирован .wim файл образа системы.

Основной недостаток командлета ImportStartLayout – он импортирует макет начального экрана не к профилю текущего пользователя, а к профилю пользователя по умолчанию (в каталоге C:\Users\Default\AppData\Local\Microsoft\Windows\Shell\ появляется файл Layoutmodification.xml). Данный XML макет начального экрана применится только к новым пользователя при первом входе в систему

Распространение макета начального экрана пользователям с помощью GPO

Чтобы распространить файл с макетом меню Пуск на компьютеры домена с помощью групповых политик (GPO), нужно скопировать полученный XML файл в каталог Netlogon на котроллере домена. Затем откройте консоль управления доменными групповыми политиками Group Policy Management Console (GPMC.msc) и создайте новую или отредактируйте существующую политику и назначьте ее на OU с пользователями.

В редакторе GPO найдите политику с именем Start Layout (Макет начального экрана) в секции User Configuration -> Policies -> Administrative Templates -> Start Menu and Taskbar (также вы можете привязать макет меню Пуск к компьютеру, для этого нужно настроить политику в секции Computer Configuration).

Политика XML макет начального экрана в windows 10

Эту политику можно настроить с любого компьютера при наличие следующих файлов административных шаблонов: StartMenu.admx и StartMenu.adml (в Windows 10 / Windows Server 2016 они уже имеются).

start lyayout file: указать xml файл с макетом в GPO

Если вы хотите применить политику Start Layout, только к определенным группам пользователям или компьютерам, вы можете использовать Security Filtering или WMI фильтры GPO.

По умолчанию при задании параметров стартового меню и таскбара пользователей с помощью GPO, пользователи не могу изменять его элементы (удалять ярлыки, добавлять собственные). Чтобы разрешить пользователю менять элементы макета, нужно воспользоваться возможность частичной блокировки макета начального экрана (Partial Lockdown), описанной в секции ниже.

Partial Lockdown – частичная блокировка макета начального экрана Windows

Режим Partial Lockdown, появился в Windows 10 версии 1511, и позволяет указать группы плиток стартового меню, которые пользователи не могут изменить. Т.е. вы можете разрешить пользователяи изменять любые ярлыки, значки и плитки кроме определенной группы ярлыков корпоративных приложений.

Чтобы указать заблокированные группы начального экрана, нужно отредактировать XML файл с макетом с помощью любого текстового редактора (для редактирования XML файла удобно использовать Notepad++).

Откройте ваш файл StartLayoutW10.xml и найдите в нем секцию <DefaultLayoutOverride>. Чтобы заблокировать определенную группу ярлыков, нужно в атрибуты данной секции изменить на <DefaultLayoutOverride LayoutCustomizationRestrictionType=”OnlySpecifiedGroups”>.

DefaultLayoutOverride LayoutCustomizationRestrictionType=”OnlySpecifiedGroups”>

Сохраните изменения в xml файле и распространите его на пользователей. Таким образом, будут заблокированы для редактирования пользователями только группы плиток (ярлыков), указанные в XML файле.

Partial Lockdown работает как в Windows 10 Enterprise так и в Pro (начиная с 1703).

В Windows 10 есть небольшой глюк, когда назначенный ярлык Internet Explorer не появляется после применения XML файла макета через GPO.

Читайте также: