Обновление настроек политик групп Microsoft Windows Group Policy на локальной машине не очень сложно сделать с помощью такого инструмента, как Gpupdate, но обновление этих политик на удаленных компьютерах в домене, невозможно сделать ни с помощью консоли управления Microsoft Management Console (MMC), ни с помощью любых, доступных на сегодняшний день, продуктов компании Microsoft. В этой статье я расскажу вам о различных уловках, сценариях и бесплатных инструментах, которые позволяют обновить настройки политики групп на удаленных компьютерах в домене.
Большинство администраторов знают о проблеме применения политик групп на удаленных компьютерах. После настройки какой-либо важной политики, иногда нам хотелось бы, чтобы эта политика группы GP сразу же появилась на клиентских компьютерах. Но проблема заключается в том, что по умолчанию, так называемая фоновая обработка происходит лишь в интервале от 90 до 120 минут (случайным образом) – если мы хотим ускорить процесс обновления, то здесь мы предоставлены сами себе. Конечно, существует причина, по которой политики просто не обновляются каждые пять минут или даже в режиме реального времени. Загрузка контроллеров доменов и сети в большинстве сред будет слишком большой, чтобы с ней справиться. Но если возникнет необходимость быстрого применения очень важной настройки для безопасности для большого количества клиентов, то было бы неплохо подготовиться к такой ситуации.
Что нам в действительности нужно, это обеспечить возможность для администратора, обновлять политики на компьютерах Computer1, Computer2 и/или Computer3 – а также политики для пользователей A, B и C из централизованной точки – рабочей станции администратора, в том случае если администратор сочтет это необходимым. Посмотрите на рисунок 1.
У нас есть замечательный инструмент под названием Gpupdate, который встроен в операционную систему Microsoft Windows XP и более новые операционные системы – а также у нас есть инструмент под названием Secedit для операционной системы Windows 2000 – но к несчастью команда Gpresult для инструментов Gpupdate и Secedit может обрабатываться только на локальных компьютерах. Конечно у нас есть уже настроенная система установки, как сервер управления системами Microsoft Systems Management Server (SMS), мы можем использовать эту систему для передачи небольших сценариев, которые запустят необходимую команду для группы пользователей или компьютеров.
Если в вашей сети нет такой системы, то вы должны попробовать более творческие подходы – т.к. альтернатива заключается в том, чтобы зайти на все необходимые компьютеры с помощью инструмента типа Remote Assistance (Удаленный помощник), или разослать все пользователям электронное письмо с просьбой выполнить команду Gpupdate… Поэтому ищите более творческие подходы.
Перед тем, как углубимся в детали, я хочу упомянуть общие проблемы, с которыми сталкиваются люди при попытке использовать методы, упоминаемые в этой статье.
Как и в случае с другими соединениями, которые инициированы в сети, пакеты, которые пытаются обновить настройки политик на удаленных компьютерах, не смогут преодолеть локальный брандмауэр на удаленных компьютерах (как, например, брандмауэр, который встроен в операционную систему Windows, начиная с Windows XP с пакетом обновления Service Pack 2 и выше), если это брандмауэр не настроен таким образом, чтобы разрешать такой входящий трафик (из выбранной подсети subnet, IP или что-то в этом роде). Встроенный в операционную систему Windows брандмауэр должен быть настроен, чтобы разрешать входящий трафик, который мы формируем использованием объекта политики группы, поэтому, как не иронично это звучит, такая политика – это единственная, которую мы не можем использовать для удаленных компьютеров с включенным брандмауэром.
Настройки политики, которые должны быть установлены для всех методов, упоминаемых в этой статье, следующие:
Другие устройства, которые выполняют роль брандмауэра, между центральным компьютером и удаленными компьютерами должны также соблюдать вышеупомянутые настройки (смотрите тест помощи Help, для упомянутой политики в GPEDIT.MSC).
Пользователь, который инициирует процесс на удаленном компьютере, должен иметь на нем права локального администратора – в противном случае, все будет работать не так, как вы ожидаете.
После того, как вы обо всем этом позаботились, давайте рассмотрим сами методы.
Сценарии бесплатны и широко распространены среди специалистов по информационным технологиям в Интернет – это в действительности “Open Source”. Компания Microsoft предоставила нам несколько встроенных возможностей для расширения возможностей операционной системы и среды – в этой статье мы расскажем о том, как можно использовать эти возможности для удаленного обновления политик групп GP.
Сперва мы должны упомянуть инструменты Gpupdate и Secedit, без этих инструментов ничего, из перечисленного ниже, не было бы возможным. Сценарии и инструменты, которые упоминаются здесь, все подразумевают, что один из этих инструментов установлен на удаленном клиенте, в зависимости от версии операционной системы. Как упоминалось выше, инструмент Secedit входит в состав операционной системы Windows 2000, а инструмент Gpupdate был взят с операционной системы Windows XP и выше, он даже присутствует в операционной системе Longhorn, в том виде, в каком она находится сейчас. В следующих сценариях я сфокусируюсь на Gpupdate – мы можем проверить версию операционной системы перед запуском Gpupdate или Secedit, но эту проверку можно добавить позднее без особых затруднений.
Файл Gpupdate.exe по умолчанию располагается в папке “%windir%\system32”, поэтому нам не нужно знать абсолютный путь к эго местоположению на удаленной машине. Инструмент можно вызвать с набором различных ключей:
В наших сценариях “сделай сам” для приложений HTML Application (HTA) и Windows Management Instrumentations (WMI) мы сфокусируемся на запуске Gpupdate без ключей – или с ключами “/Taget:Computer” (для обновления политик, относящихся к компьютеру) или “/Target:User” (для обновления политик, относящихся к пользователю). Другие параметры можно включить, немного поработав – но нужны ли нам в действительности “/Logoff” или “/Boot”? Это означает, что пользователи могут выйти в случае необходимости (установка программного обеспечения, изменение папок и т.д.) или даже можно потребовать перезагрузки компьютера во время работы пользователя. В действительности ли это то, что нам надо? В любом случае, мы можем также использовать инструмент типа Shutdown.exe для этих целей – поэтому мое мнение это не будет слишком популярным.
Первый метод, о котором я хочу рассказать, очень прост в использовании и практически не требует навыком программирования. Зачем придумывать что-то, что уже было изобретено, верно? Инструмент под названием PsExec был разработан Марком Руссиновичем, бывшим владельцем компании Sysinternals, которая была выкуплена компанией Microsoft в июле 2006. На сегодняшний день доступна версия 1.73, которую можно загрузить с сайта Microsoft Technet.
Инструмент PsExec великолепен, когда речь идет об удаленном выполнении, в основном благодаря тому, что он не требует установки агентов на удаленном компьютере. Вам всего лишь необходимо указать имя компьютера и команду, которую необходимо запустить вместе с ключами в командной строке – и все!
Небольшой трюк заключается в том, чтобы поместить файл PsExec.exe в директорию “%windir%”, т.к. в этом случае нам не нужно указывать полный путь к этому файлу при запуске его из командной строки.
Для того чтобы обновить политики группы на удаленной машине, все, что нам необходимо сделать, это задать ‘Computername’ (имя компьютера) в следующей команде: “PsExec \\Computername Gpupdate”. Пользователь, который работает на удаленной машине, даже не узнает, что случилось, но в фоновом режиме команда Gpupdate обновит политики для пользователя и для компьютера и применит все утерянные настройки. Вы можете подумать, что команду PsExec необходимо запустить с ключом “-i» для обновления для удаленных пользователей специальных политик для пользователей, но тестирование показывает, что это необязательно.
Итак, метод, упомянутый выше, позволяет обновить политики для одного пользователя или компьютера, а как насчет обновления всей организационной единицы (Organizational Unit или OU) благодаря совместному использованию PsExec и Gpupdate? Для этих целей я создал демонстрационный сценарий, чтобы показать некоторые возможности, которые мы можем воспользоваться благодаря написанию сценариев. Сценарий называется FLEX COMMAND и его можно загрузить отсюда. Вы можете легко открыть файл с расширением HTA с помощью текстового редактора типа Notepad и увидеть код, никакой скрытой магии.
Когда стартует FLEX COMMAND, он соединяется с доменом Active Directory AD) domain компьютера, на котором он выполняется. Поэтому он должен быть выполнен на компьютере, который является членом домена, в противном случае не будет найдена организационная единица OU.
Выберите OU, инструмент должен обрабатываться на машинах, которые «живы» (отвечают на запросы WMI requests). Последнее, что нужно сделать, это вставить командную строку, которую мы хотим выполнить на локальном компьютере, для каждого объекта, находящегося в выбранной организационной единице OU. Текстовую строку “{C}” необходимо оставить, т.к. она будет заменена названием компьютера, при работе сценария.
Давайте предположим, что организационная единица OU под названием “MyComputers” содержит всего 3 компьютера: Computer1, Computer2 и Computer3. Команда, которую мы набрали, “psexec \\{C} gpupdate” затем переводится в 3 следующие команды: “psexec \\computer1 gpupdate”, “psexec \\computer2 gpupdate”, “psexec \\computer3 gpupdate” – все команды будут последовательно выполнены (если компьютеры «живы») и удаленные политики будут обновлены.
Инструмент можно модифицировать таким образом, что список компьютеров будет приходить из файла (txt, csv, xls и т.п.), базы данных, особой группы безопасности в AD, с помощью ручного выбора из списка. Способ запуска сценария также можно изменить, он это всего лишь демонстрационный сценарий, основное назначение которого показать имеющиеся у нас возможности.
Сценарий распространяется бесплатно, и вы можете тестировать, использовать и изменять его на свое усмотрение – подробности здесь.
Хорошо, инструмент PsExec действительно великолепен, но есть ли какие-нибудь ручные методы, с помощью которых я могу лучше настроить решение для своей среды? Да, на самом деле есть! WMI очень мощный и достаточно прост в использовании после нескольких часов изучения. Если вы владеете WMI, и у вас все в порядке с разрешениями на брандмауэре и правами администратора, то вы сможете сделать практически все в среде Windows environment – даже удаленное выключение компьютера, перезагрузка и исполнение удаленных команд.
Я создал другой сценарий для демонстрационных целей под названием OU GPUPDATE. Этот сценарий HTA использует несколько различных техник – в действительности это небольшая модификация сценария FLEX COMMAND. Во-первых, он разбирает структуру организационной единицы OU в AD (верхний выпадающий список), предоставляет пользователям возможность выбрать компьютеры из OU, запустить Gpupdate с параметром “/Target:User” или “/Target:Computer” или вообще без параметров. Только «живые» компьютеры (которые отвечают на запросы WMI requests) будут затронуты по умолчанию.
Это сценарий распространяется бесплатно, и вы можете тестировать, использовать и изменять его на свое усмотрение отсюда.
Кроме WMI у нас есть возможность использования обычного удаленного написания сценариев (VBScript). Это можно включить установкой всего одного значения в части HKLM реестра компьютеров, также механизм сценария должен поддерживать удаленное написание сценариев “remote scripting”, и с этого момента все остальное становится достаточно очевидным. Процедура заключается в копировании файла сценария на удаленный компьютер (этот сценарий должен использовать Gpupdate), а затем посылается команда VBScript, которая запускает сценарий удаленно.
RGPREFRESH – это инструмент, разработанный Дареном Мар-Элем. Его инструмент использует WMI и запускает либо Secedit либо Gpupdate в зависимости от операционной системы на удаленном компьютере, с ключами, выбранными пользователем. Эти ключи предоставляют вам те же возмжности, что и при локальном использовании этого инструмента.
Этот инструмент обрабатывает одну машина за раз, но совместно с инструментом под названием FLEX COMMAND (в качестве оболочки) этот инструмент можно использовать для целой организационной единицы (OU) всего лишь несколькими нажатиями мыши … Оба инструмента RGPREFRESH и PsExec можно также совместно использовать с утилитами DSQUERY, FOR и другими утилитами, работающими из командной строки, на более, чем один компьютер за раз.
Этот инструмент можно бесплатно загрузить с этой странички.
Компания Special Operations Software, Specops, являющаяся международным производителем программного обеспечения, предлагает продукты по управлению Active Directory на основе технологии политик групп. Компания выпустила свое собственное решение для удаленного обновления политик, и что самое замечательное, это то, что оно совершенно бесплатно. Текущая версия Specops Gpupdate — 1.0.2.13 (2006-10-25) а саму утилиту можно загрузить отсюда. Этот инструмент не только обладает функциональностью, которую мы разработали в сценариях, упомянутых выше, но и также добавляет несколько возможностей по управлению. Давайте рассмотрим эту замечательную утилиту …
Установка MSI приложения очень проста – все, что для нее нужно, это пользователя и компьютеры Active Directory Users & Computers (ADUC) MMC, а также Microsoft .NET Framework version 2.0.
После установки файла MSI в графическом интерфейсе ничего не меняется GUI, и лишь с помощью “Add/Remove Programs” можно узнать, что на нашей машине установлен Specops. Поэтому мы должны выполнить дополнительную работу для магического превращения …
После установки Specops Gpupdate в лесу AD Forest, необходимо выполнить специальную команду
Это не обновление схемы, хотя вы и должны обладать правами корпоративного администратора для запуска этой команды. Это команда абсолютно обратима, просто запустите ее еще раз с ключом “/remove”. Все, что она делает, это регистрирует, так называемые спецификаторы экрана “Display Specifiers” для расширения просмотра с помощью ADUC.
Затем нажмите правой кнопкой мыши на объекте организационной единицы OU или компьютера, и увидите, что появились четыре новые команды: Gpupdate, Restart, Shut down и Start. Есть возможность сделать выбор нескольких компьютеров и OU благодаря удержанию клавиши [Ctrl] и нажатию правой кнопки мыши на необходимых объектах.
Если у вас, как и меня, возник вопрос, а можно ли изменения применить также для не контроллеров домена DC, то ответ, да! После установки Windows Server 2003 Admin Pack Service Pack 1 Administration Tools Pack на клиенте Windows XP Professional, .NET Framework 2.0 и Specops Gpupdate, консоль управления выглядит также, как на контроллере домена DC, и имеет те же самые возможности.
Первый параметр, который у нас есть, позволяет нам запустить команду Gpupdate удаленно на выбранных компьютерах. После выбора Gpupdate мы должны подтвердить выбор, как показано на рисунке 7, и поставить галочку в поле use force option, если мы хотим использовать настройку усиления.
После нажатия на кнопку OK появится динамический график, смотри Рисунок 8, а также отчет о состоянии прохождения обновления.
Следующие два параметра ‘Restart’ и ‘Shutdown’ являются очень важными для управления, поэтому они нужны нам прямо в ADUC. Мы можем запустить команду restart (перезагрузить) или shutdown (выключить), а также задать интервал времени в секундах, который предоставляется пользователю на то, чтобы закрыть все запущенные приложения. Написать сценарий, который делал бы все то же самое, не очень сложно с помощью WMI или благодаря использованию команды Shutdown.exe с правильными ключами, но благодаря Specops Gpupdate мы получаем эту функциональность совершенно бесплатно без затрат времени и сил.
Параметр Start Последний из четырех параметров называется ‘Start’, и в действительности представляет собой функциональность Wake on LAN или WOL (разбудить по сети), встроенную в ADUC. После выбора и подтверждения этого параметра, смотри Рисунок 10, так называемые, магические пакеты (Magic packet) будут посланы на MAC адреса клиентских компьютеров, и начнется их загрузка. Для работы WOL соответствующая функциональность должны поддерживаться BIOS компьютеров. Specops Gpupdate взаимодействует с серверами Microsoft DHCP в корпорации, для нахождения информации, необходимой для запуска этого процесса, поэтому есть возможность разбудить клиентов DHCP и только в сети с установленными серверами Microsoft DHCP.
Между прочим, для WOL также можно использовать сценарии, примеры такого кода выходят за рамки этой статьи.
Мы рассмотрели несколько способов, с помощью которых можно применить политики групп на удаленных компьютерах. Какой метод из перечисленных лучше подходит для вас, зависит от среды. Лично мне нравится написание сценариев, но зачем усердно трудиться над тем, что уже создали другие люди? На этот вопрос у меня есть два ответа. Первый, во время написания таких сценариев мы учимся, а второй – особые условия или изготовление под заказ. Написание сценариев улучшает наши навыки в качестве специалистов по информационным технологиям, а также позволяет настраивать готовые решения для более четкого удовлетворения конкретным условиям.
Компания Specops разработала очень хорошую бесплатную утилиту, которая выполняет основные функции по обновлению политик на сетевых клиентах. Я рекомендую вам попробовать ее!
Источник www.windowsecurity.com
Tags: domain, mac, redirect, Windows XP