Как сделать копию политики
Как перенести групповые политики на новый контроллер домена
Перенос групповых политик может понадобиться в случае создания нового домена в новом лесу или при разделении компании. Так или иначе, процесс выполняется в несколько этапов:
По сути, мы делаем бэкап политик и восстанавливаем его на другом сервере. Для данной инструкции объекты GPO экспортировались с Windows Server 2016 и импортировались в Windows Server 2019. Однако, принцип резервирования/восстановления не менялся давно, и инструкция подойдет для версий 2008 и 2012.
1. Архивирование объектов групповой политики
Выбираем расположение для групповых политик (желательно, в отдельно созданную папку, так как в ней будут созданы каталоги политик):
. и нажимаем Архивировать.
Также мы можем выполнить команду в powershell:
Дожидаемся окончания процесса и кликаем по OK. В папке выгрузки мы должны увидеть каталоги политик:
Переносим папку с выгруженными политиками на новый контроллер домена.
2. Создание файла таблиц миграции
На данном шаге мы исправим нестандартные настройки политик, которые характерны для старого домена.
Выбираем папку, в которой находятся выгруженные объекты политик, выделяем все политики, ставим обе галочки внизу окна:
. и нажимаем OK.
Откроется список уникальных настроен для старого домена — наша задача найти все, что не имеет отношения к новому домену и исправить это, например:
* обратите внимание, что в данном примере мы отредактировали домен на new.dmosk.local и UNC-путь для new-dc. Также мы оставили нетронутым старый домен old.dmosk.local — это сделано для примера.
3. Импорт групповых политик
Настройки для политик импортируются по одной. Массовой загрузки не предусмотрено.
В консоли управления политиками создаем первый объект:
Для удобства, желательно дать такое же название политики, как на первом контроллере:
. и Далее. В списке политик выбираем нужную, которую хотим восстановить:
Ставим галочку Показывать только последние версии объекта групповой политики:
Далее и Готово.
Повторяем действия для каждого объекта групповой политики.
4. Применение политик
И так, политики мы создали и восстановили настройки. Но пока они находятся в общем контейнере и не применяются к пользователям или компьютерам. Необходимо их определить для организационных юнитов, сайтов или доменов.
Как сделать копию политики
Доброго времени суток! Многоуважаемые читатели и просто гости IT портала Pyatilistnik.org. Рад, что вы вновь на страницах моего ресурса. В прошлый раз мы с вами рассмотрели, что делать когда у вас в системе отсутствовала библиотека VCRUNTIME140.dll. Сегодня я хочу поговорить, еще об одной вещи которая можете оптимизировать работу пользователей и сохранить много времени системному администратору. Сегодня я покажу, как скопировать файл или папку с помощью групповой политики, автоматизировав данный процесс.
Способы копирования файлов и папок
Существует большое количество методов, которые позволяют вам решить задачу по перемещению файлов, я могу выделить вот такие:
Постановка задачи
И так есть всем известная программа 1С. Бывают случаи, что необходимо пользователю производить очистку локального кэша. Для этого был написан специальный скрипт. Необходимо его скопировать нужным пользователям на рабочий стол, чтобы они могли его выполнять в нужный момент. Если людей 1 или два, то проблем нет, если же их сотни, да и еще добавляются новые, то правильный вариант, это автоматизация. И глупо было бы не использовать функционал групповых политик, раз уж мы в домене Active Directory.
Создание политики копирования на рабочий стол
Первым делом у вас должна быть сетевая папка из которой будет производится копирование файла или каталога. В моем случае, это сетевая шара \\DC01\share\ClearCache1C.js, где лежит нужный мне скрипт очистки кэша 1С. Вот этот файл мне нужно поместить на рабочий стол пользователя или компьютера. Почему может потребоваться положить файл на общий рабочий стол компьютера. Очень часто бывает, что есть компьютеры, где нет постоянного пользователя, там сотрудники могут работать по сменам и пересаживаться на удобное для них место, и проще применить политику один раз на компьютер, чем таскать за собой по всем, но тут уже все зависит от задачи, лично я применяю ее для пользователя, для меня, это более безопасно.
Открываем редактор групповой политики и создаем там новую, я назвал ее «Копирование файла на рабочий стол». Давайте ее изменим, задав нужные параметры.
Тут как вы знаете есть политики для компьютеров и отдельные для пользователей, все зависит от вашей задачи по распространению. В моем примере я на первом этапе применю политику на сотрудника, по имени Геннадий Барбоскин. Переходим по пути:
Щелкаем тут правым кликом и из контекстного меню выбираем пункт создать файл.
Тут у вас будет три действия:
В списке файлов у вас будет задание имеющее порядковый номер 1, которое будет производить копирование файла из сетевой папки на рабочий стол пользователя.
Так же хочу обратить ваше внимание на вкладку «общие параметры», тут вы найдете вот такие пункты:
Далее вам необходимо применить данную политику к нужной группе, для этого в редакторе политик, выберите нужную и в поле «Фильтры безопасности» нажмите кнопку «Добавить». В открывшемся окне найдите вашу группу, у меня это «Очистка кэша 1С».
Когда вы добавили нужную группу ф фильтр, необходимо удалить из нее группу «Прошедшие проверку».
Если вы делаете политику на пользователя, то политика не применится, так как ее не сможет прочитать компьютер, для этого вам необходимо на вкладке «Делегирование» добавить группу содержащую нужные компьютеры или же группу «Компьютеры домена»
Далее задайте уровень чтения, этого будет достаточно.
Пробуем применить политику. Перелогинимся пользователем Барбоскин Геннадий на рабочей станции и проверим, с копировался ли файл на рабочий стол.
загружаемся и видим, что на рабочем столе отображается скопированный скрипт из сетевой шару, пробую его запустить. Как видим, все отлично отрабатывает. Теперь пользователю в нужный момент нужно просто его выполнить и его проблема будет решена.
Теперь покажу небольшие нюансы копирования файлов на компьютер, например на рабочий стол. Путь политики там такой же:
Указываю, что также хочу пользователю скопировать файл на рабочий стол и беру для этого все тот же путь с переменной %USERPROFILE%\Desktop\Очистка кэша 1С.js\
Не забываем отфильтровать политику, удалив из нее авторизованные пользователи и добавив нужную группу, в моем примере, это «Компьютеры домена».
В итоге у вас политика отработает, но вот на рабочий стол у вас файл скопирован не будет, точнее он скопируется на рабочий стол общего профиля, из которого создаются новые рабочие столы. Вы его найдете по пути C:\Users\Default\Desktop, заведомо до этого включив скрытые файлы в Windows.
Чтобы это обойти, вам нужно в настройках политики изменить путь на C:\Users\Public\Desktop\Очистка кэша 1С.js (C:\Users\Public\Desktop\ соответствует пути C:\Пользователи\Общие\Общий рабочий стол\)
Как сделать копию политики
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами мы с вами разбирали процедуру создания центрального хранилища административных шаблонов GPO. Движемся дальше и сегодня мы рассмотрим, самую распространенную задачу связанную с групповыми политиками, а именно научимся ее обновлять локально и удаленно, я расскажу в каких ситуациях данная информация вам можете помочь. Мы рассмотрим, какие инструменты у вас есть в арсенале, и я уверяю вас, что вы явно знали не обо всех.
Для чего нужно уметь обновлять групповую политику?
Перед тем, как перейти к практической части я бы хотел описать ряд ситуаций, которые вы можете встретить в своей практике, где вам можете потребоваться ручное обновление GPO. Еще хочу напомнить, что по умолчанию, любая операционная система Windows, являющаяся членом домена AD сама, автоматически производит обновление групповых политик каждые 90-120 минут, это позволяет не генерировать много сетевого трафика и сделать балансировку при обращении к мастеру PDC, но бывают и другие ситуации.
Предположим, что вы внесли важные обновления настроек для ваших серверов, например для авторизации CredSSP, или закрываете какую-то дыру безопасности, логично, что в Active Directory, это делается через групповые политики. Когда у вас 5-10 серверов, то нет проблем чтобы зайти на каждый из них через удаленный рабочий стол и выполнить команду, а когда серверов сотни, тут уже нужна массовость. Еще не нужно сбрасывать со счетов ситуации, когда вы по RDP не можете зайти, через редактор политик обновить не получается, что делать, тут можно сделать все удаленно через PowerShell или командную строку, об этом то же поговорим.
Методы обновления GPO
Давайте составим список способов и инструментов, которые вы можете использовать:
Давайте теперь опробуем каждый из этих методов.
Как обновить GPO через командную строку
Для выполнения этого метода, вы должны зайти локально на компьютер или сервер, открыть командную строку и ввести вот такую, небольшую команду:
Ключ /force произведет принудительное обновление групповой политики. Хочу отметить, что некоторые настройки могут применяться, только после выхода из системы. Если политика показала, что успешно обновилась, но эффекта не произошло, то смотрите мою статью «Почему не применяются GPO», придется делать траблшутинг.
Как вы можете обратить внимание, что команда выше производит обновление политик, как для пользователя, так и для компьютера, но при желании вы можете этим манипулировать и явным образом указать, что подлежит апдейту. Для этого есть ключ /Target:
Как обновить GPO через PowerShell
Оболочка PowerShell так же имеет отдельный командлет, который легко может инициировать запрос на обновление групповой политики, называется он Invoke-GPUpdate.
Давайте запросим обновление политик GPO на моем тестовом сервере с Windows Server 2019, для этого запускаем оболочку PowerShell и вводим команду:
Ключ –RandomDelayInMinutes 0 установит задержку в выполнении на ноль секунд, в противном случае обновление будет выполнено рандомно, через некоторое время.
Обратите внимание, что командлет не выдает никаких результатов, если все работает нормально. В некоторых случаях ваши пользователи могут увидеть всплывающее окно командной строки с заголовком taskeng.exe, которое отображает сообщение «Политика обновления». Через секунду окно исчезает.
Еще одним преимуществом командлета PowerShell является то, что у вас есть больше возможностей в выборе машин, которые вы хотите обновить. Например, с помощью приведенной ниже команды вы должны выбрать все компьютеры, которые начинаются с «Note*«.
Если нужно выбрать все компьютеры, то ставим звездочку «*»
При желании вы можете найти все компьютеры по версиям операционных систем и сделать обновление групповых политик по данному критерию.
Еще вы можете подготовить текстовый файл со списком серверов, который так же можно через цикл обработать, вот по такому принципу:
Я также добавил здесь параметр -Force, чтобы обеспечить повторное применение параметров групповой политики, даже если клиент замечает, что новые версии GPO недоступны. Таким образом, когда мы говорим о принудительном обновлении групповой политики, мы на самом деле имеем в виду две разные вещи. Без параметра Force мы просто незамедлительно инициируем обновление; если мы добавим параметр Force, мы форсируем обновление, даже если обновлять нечего. Параметр Force вступает в игру, если вы считаете, что что-то пошло не так в предыдущем обновлении объекта групповой политики.
Обновление групповой политики через оснастку GPMC
Начиная с операционной системы Windows Server 2012 R2, компания Microsoft расширила функционал оснастки по управлению политиками. Разработчики внедрили механизм, массового и точечного инициирования применения политик GPO к нужным объектам и заметьте через графический интерфейс. Откройте оснастку «Управление групповой политикой«, проще всего, это сделать через окно «Выполнить«, введя там там команду gpmc.msc.
Далее, что вы делаете. Находите нужную вам OU, щелкнуть правым кликом и из контекстного меню выбрать пункт «Обновление групповой политики«.
У вас появится окно «Принудительное обновление групповой политики», в котором вы увидите количество объектов, к которым будет применено действие
На следующем экране вы увидите результат отработки команды, в первом моем примере политики успешно применилась.
При желании все результаты команды можно сохранить в CSV файле
Вот пример содержимого такого файла
на компьютерах, где таким методом была запущена процедура принудительного применения GPO, вы в логах Windows можете обнаружить событие с кодом 1704:
То же самое можно посмотреть и в Windows Admin Center, где нужно зайти в раздел события.
Ошибка 8007071a «Удаленный вызов процедуры был отменен»
Иногда в консоли GPMC вы можете получать ошибку:
Связана она с тем, что на удаленных компьютерах у вас брандмауэр Windows блокирует эти вызовы, чтобы это поправить я вам советую сделать разрешающую политику, подробнее читайте, как исправить ошибку 8007071a.
Обновление GPO через PSexec
Я вам очень часто рассказываю в своих примерах из моей практики, об утилите PSexec и сборнике SysInternals от Марка Руссиновича. Суть метода в том, что с помощью специальной утилиты вы сможете выполнить удаленную команду, ранее я так удаленно включал RDP на сервере или клиентской машинке.
Далее вы распаковываете архив, если он в таком виде и открываете папку с утилитами SysInternals в командной строке, напомню сделать, это можно через команду cd или через правый клик с зажатым Shift по нужной папке, выбрав пункт «Открыть окно команд».
Обращаю внимание, что у вас должны быть соблюдены несколько требований:
Теперь выполните команду:
В результате будет удаленный запуск утилиты gpupdate, если все хорошо, то вы получите сообщение «gpupdate exited on svt2019s01.root.pyatilistnik.org with error code 0«.
на удаленном компьютере в журналах системы вы увидите два события 1500 и 1501.
Так же вы можете подключиться вообще к удаленной командной строке, через команду:
Далее просто пишите gpupdate /force, обратите внимание я через команду hostname показал, что подключение идет с одного компьютера на другой.
Если компьютер не подключен к сети, вы получите следующее сообщение об ошибке:
Чтобы массово обновить групповую политику на всех компьютерах домена, воспользуйтесь знаком звездочки «*»:
Если это не помогло и выскочила ошибка, то может воспользоваться через PowerShell. В оболочке перейдите в каталог с утилитами PSTools и выполните:
Или можно из конкретного OU добавив
Обратите внимание, что мы должны кодировать выходной файл с помощью ASCII, чтобы мы могли прочитать его содержимое из пакетного файла следующим образом:
PsExec против Invoke-GPUpdate
Основным недостатком метода PsExec является то, что он относительно медленный. Это может занять от 3 до 4 секунд на компьютер, а для компьютеров, которые не подключены к сети, это может занять еще больше времени. PsExec иногда даже зависал во время моих тестов.
Разрешение входящих подключений через порт 445 является угрозой безопасности. Компьютерные черви могут использовать этот порт, а хакеры могут делать много неприятных вещей с помощью PsExec. Открытие порта планировщика заданий для Invoke-GPUpdate также проблематично, но я думаю, что порт 445 более популярен среди программистов вредоносных программ.
Таким образом, в большинстве сценариев Invoke-GPUpdate является лучшим вариантом. Однако, если вы все равно открыли порт 445 по другим причинам и не хотите открывать порты Invoke-GPUpdate, вы можете предпочесть PsExec для принудительного обновления групповой политики.
Удаленное обновление GPO через Enter-PSSession
Еще в PowerShell есть командлет для удаленного подключения к компьютеру, называется он Enter-PSSession, его принцип работ, как у PsExec. Откройте оснастку PowerShell и введите:
Далее вы подключитесь к удаленному компьютеру, где потом просто введите gpupdate /force.
Удаленное обновление GPO через Windows Admin Center
Если вы в своей практике используете утилиту удаленного администрирования Windows Admin Center, то вы легко можете подключиться к удаленному серверу и обновить политики GPO все через тот же gpupdate /force.