Как подготовиться к работе с групповыми политиками

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

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

Наиболее характерные типы проблем

Неполадки, которые возникают в процессе использования групповых политик, могут принимать различные формы. Чаще всего они проявляются в виде нарушений работы приложений на компьютерах пользователей. Либо это могут быть проблемы администрирования, возникающие у специалистов, обслуживающих эти компьютеры. Если говорить более определенно, то в большинстве известных мне случаев подобные проблемы были связаны с двумя основными типами политик, а именно с политиками установки ограничений на компьютеры пользователей (desktop lockdown policies) и с политиками безопасности (security policies).

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

В одной из сетей, сопровождением которых я занимаюсь, использование политики скрытия дисков Administrative Templates Hide Drives (User ConfigurationAdministrative TemplatesWindows ComponentsWindows ExplorerHide these specified drives in My Computer) привело к отказу «старых» приложений. В результате начали появляться сообщения об ошибках, не имеющих никакого отношения к групповым политикам. Поэтому даже в тех случаях, когда настройки групповых политик не затрагивают напрямую те и или иные приложения, вносимые ими ограничения могут привести к ряду ошибок, не имеющих должного описания, что может сбить с толку как пользователя, так и администратора. Например, если для запрета запуска некоторых приложений задействовать политику User ConfigurationAdministrative TemplatesSystemDon?t run specified Windows applications, при попытке запуска соответствующего приложения пользователь получит стандартное сообщение об ошибке, показанное на экране 1.

При использовании административных шаблонов политик (Administrative Templates) в реестре устанавливаются соответствующие параметры, относящиеся к пользователям или компьютерам, значения которых будут затем применяться различными компонентами Windows для внесения ограничений и их использования (к подобным компонентам относятся, например, Windows Explorer, Microsoft Internet Explorer (IE) и Windows Media Player (WMP)). Отмечу, что возможность управления работой этих компонентов Windows через групповые политики была заложена изначально, поскольку в процессе их разработки была предусмотрена возможность работы данных приложений с параметрами реестра, относящимися к групповым политикам. Другими словами, для того чтобы можно было управлять работой приложения через групповые политики, его разработчик должен сознательно заложить в него возможность работы с параметрами реестра, относящимися к групповым политикам. Если для блокировки или скрытия тех или иных компонентов программной среды компьютера применяются административные шаблоны политик, то вносимые ими ограничения могут повлиять на работу пользовательских приложений самым неожиданным образом.

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

В некоторых случаях может вообще не выводиться никаких сообщений об ошибках, особенно если речь идет о взаимодействии приложений независимых компаний с системой, на которой действуют установки политики по ограничению использования тех или иных компонентов. Подобного рода взаимодействия, как правило, бывают недостаточно полными, поскольку разработчики таких приложений не проверяют их на предмет возможности применения в среде с действующими в ней ограничениями и не используют функции прикладного интерфейса API, позволяющие взаимодействовать с параметрами групповых политик. Таким образом, важно знать, придерживаются ли поставщики программного обеспечения спецификаций для приложений от компании Microsoft, в которых, помимо всего прочего, детально описывается, как следует разрабатывать приложения, чтобы они корректно взаимодействовали с механизмами групповых политик. Спецификацию по разработке приложений для Windows XP (Designed for Windows XP Application Specification) можно загрузить по адресу: http://www.microsoft.com/downloads/ details.aspx?FamilyID=44aa70b3-99d9-4529-9117-82cc0845938b&displaylang=en.

Политики безопасности

Предположим, администратору нужно лишить пользователей, не имеющих административных прав, возможности регистрации на некоторых серверах. В этом случае он должен контролировать состав групп, имеющих право локальной регистрации (Logon locally) на соответствующих серверах. И вот наш администратор, по невнимательности, ссылается на объект GPO, отвечающий за политику домена, без установки фильтров безопасности, предписывающих применять данную политику только к тем серверам, на которые необходимо ограничить доступ. В результате после того, как компьютеры компании обработают доменную политику, ни один из пользователей не сможет локально зарегистрироваться на своем компьютере до тех пор, пока администратор не разберется в том, что произошло, и не устранит проблему.

Это только один из примеров проблем, которые могут возникнуть при настройке политик безопасности. Следует понимать, что многие из рассмотренных выше установок ограничений с помощью административных шаблонов не являются настоящими политиками безопасности. Они просто не дают пользователям возможности нарушать работу систем. Настоящая безопасность — в разделе групповой политики Computer ConfigurationWindows SettingsSecurity Settings, где могут устанавливаться ограничения на права пользователей, определяется политика паролей, разрешения на доступ к файлам, реестру, службам и т. д.

Настройки политики безопасности могут порождать проблемы по разным причинам. Допустим, политика безопасности была случайно настроена таким образом, что это повлекло за собой отказ ряда базовых операций. Например, если на сервере или рабочей станции были изменены настройки уровня аутентификации NTLM (что может быть сделано с помощью установки Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity Options Network Security: LAN Manager authentication-level). В результате будет получено показанное на экране 2 сообщение об ошибке, а также будет запрещен доступ к сетевым ресурсам для клиентов с более ранними версиями операционных систем (к ним относятся системы Windows 9x без установленного на них клиента службы каталогов, а также системы Windows NT 4.0 с установленным пакетом обновления Service Pack 3 или более ранним). Получаемые при этом сообщения об ошибках никак не отражают суть проблемы, но в то же время отличаются от привычных сообщений, указывающих, например, на неверное имя пользователя или пароль. В статье Microsoft «Client, Service, and Program Incompatibilities That May Occur When You Modify Security Settings and User Rights Assignments» (http://support.microsoft.com/default.aspx?scid=kb;en-us;823659) приведен прекрасный обзор настроек параметров политики безопасности, способных привести к проблемам для различных версий Windows, а также даются рекомендации по выполнению корректных настроек.

В ряде случаев выполнение некоторых настроек политики может привести к тому, что будет заблокирован вход в систему для самого администратора. Рассмотрим пример, когда администратор осуществляет управление локальными группами на рабочих станциях и серверах домена с помощью политики безопасности Restricted Groups. Данная политика часто используется для работы со списками локальной группы «Администраторы» на компьютерах с Windows. Применение политики Restricted Groups может осуществляться двумя способами. В первом случае при выборе варианта Members of this group можно обеспечить членство в локальной группе «Администраторы» только для заданных пользователей и групп, при этом каждый раз, когда компьютер обрабатывает установки групповой политики, все остальные учетные записи из этой группы будут автоматически удаляться. Другой вариант является менее жестким: если используется This group is a member of, это позволяет администратору указать для выбранной группы, членом каких других групп она должна являться. Этот вариант может использоваться, например, в том случае, когда в сети нужно включить в локальную группу «Администраторы» каждой рабочей станции с операционной системой Windows глобальную группу Desktop Admins. Одна из типичных проблем возникает в том случае, когда администраторы используют вариант Members of this group для управления локальными группами «Администраторы», забыв при этом включить в данный список учетную запись локального администратора или группу Domain Admins и, соответственно, блокируя доступ к рабочим станциям для самих себя. Поскольку в результате использования данного параметра происходит полная замена списков членов соответствующих групп, а не дополнение их новыми учетными записями, допустить эту ошибку очень легко.

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

Выявление ненадежных политик

Меня часто спрашивают, можно ли «отключить» групповую политику для пользователя или компьютера и вернуть все установки параметров в состояние по умолчанию. Отмечу, что хотя для конкретного пользователя или компьютера можно отключить обработку GPO, используя для этой цели фильтры безопасности, тем не менее, если до настоящего момента к данному пользователю или компьютеру уже была применена политика, это не приведет к сбросу всех настроек в состояние по умолчанию. Простого пути отключения групповых политик не существует, поэтому каждое изменение, вносимое в групповые политики, должно тщательно тестироваться в пользовательской среде, вне зависимости от того, насколько незначительным оно кажется. Основной подход к решению проблем с компьютерами пользователей, связанных с групповыми политиками, состоит в том, чтобы определить, какие настройки были применены, после чего выделять их одну за другой до тех пор, пока проблема не будет устранена. Данный процесс весьма утомителен и требует значительного времени, и тем не менее существуют средства и техники, позволяющие облегчить выполнение такой работы.

Если вы приступаете к анализу проблем, связанных с групповыми политиками, то первое, что надо сделать, — это запустить на проблемном клиенте отчет Resultant Set of Policy (RSoP). Данный отчет содержит информацию о том, какие именно настройки политики были переданы данному клиенту, что позволит сузить круг рассматриваемых причин возникшей проблемы. Набор используемых программных средств определяется версией операционной системы. Если, например, на клиентском компьютере установлена Windows 2000, следует использовать утилиту командной строки gpresult.exe из комплекта Microsoft Windows 2000 Resource Kit. Здесь необходимо отметить, что система Windows 2000 поддерживает ограниченный набор возможностей RSoP, вследствие чего утилита gpresult.exe не сможет выдать полные результаты по таким категориям, как политики безопасности. Если же мы имеем дело с Windows XP, то в этом случае в нашем распоряжении имеются различные программные средства. Первый и самый простой путь — запустить оснастку rsop.msc, которая имеется в каждой системе Windows XP Professional. С помощью данного средства можно быстро получить отчет RSoP по текущему пользователю в формате, сходном с форматом редактора групповых политик (GPE), как показано на экране 3.

Для того чтобы удаленно создать отчет RSoP по клиенту с Windows XP, можно воспользоваться консолью GPMS (Group Policy Management Console). Имеющийся в GPMS мастер Group Policy Results Wizard генерирует отчет в формате HTML, в котором содержится информация по действующим политикам для пользователя и компьютера, а также указаны объекты GPO, инициировавшие распространение данных политик. Кроме того, в состав систем Windows Server 2003 и Windows XP включена более полная версия утилиты gpresult.exe, с помощью которой можно создавать отчет RSoP из командной строки.

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

Политики, предпочтения и утерянные настройки

Как отмечалось выше, компоненты системы Windows считывают установленные административными шаблонами значения параметров реестра, отвечающие за управление функционированием или блокировку компонентов. Все действующие установки политик сохраняются в четырех подразделах реестра, два из которых относятся к компьютеру и два — к пользователю. Параметры политики, применяемые к компьютеру, хранятся в следующих подразделах реестра:

HKEY_LOCAL_MACHINESoftwarePolicies

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows CurrentVersionPolicies

Пользовательские параметры политики находятся в подразделах:

HKEY_CURRENT_USERSoftwarePolicies

HKEY_CURRENT_USERSoftwareMicrsoftWindows CurrentVersionPolicies

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

Microsoft поддерживает возможность создания администратором своих шаблонов (файлов с расширением .adm), что позволяет определять для записи параметров политик подразделы реестра, отличные от перечисленных выше. Шаблоны, разработанные дополнительно, называются предпочтениями (preferences), и с их помощью можно записывать данные в любые разделы реестра. Шаблоны предпочтений могут пригодиться в тех случаях, когда нужно записать в реестр какой-либо параметр, а в стандартной поставке от Microsoft нет необходимого файла .adm (например, в тех случаях, когда необходимо записать данные, не связанные с политиками, или задать настройки Windows, которые нужно разместить в других разделах реестра). В частности, можно создать файл .adm, который активизирует ведение журнала событий по групповой политике на компьютерах с Windows, при этом все параметры реестра, запускающие данный процесс, будут являться предпочтениями. Оборотная сторона использования предпочтений заключается в том, что эти настройки не будут удалены автоматически при отключении применения GPO для данного пользователя или компьютера. Если это происходит, то возникает ситуация, при которой сохраняются старые настройки, что было одной из типичных проблем при работе с системными политиками на Windows NT 4.0 и Win9x.

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

Файлы .adm используют объекты GPO из тех политик, которые отображаются в GPE в разделах Administrative Templates. Допустим, вы модифицировали какой-либо стандартный .adm файл от Microsoft, для того чтобы с его помощью добавить в реестр необходимые настройки предпочтений. В следующем выпущенном пакете обновлений для Windows разработчики Microsoft обновили этот .adm файл, таким образом, установка пакета привела к потере всех внесенных изменений. А поскольку к данному моменту политика уже была активирована, все эти настройки были сохранены в GPO. Однако вы больше не сможете увидеть эти настройки предпочтений в GPE, равно как и отменить их. Настройки подобного типа называются утерянными. Для того чтобы восстановить возможность управления этими настройками, требуется повторно внести аналогичные изменения в соответствующий .adm-файл. Более предпочтительным подходом в данной ситуации является создание отдельного .adm-файла, описывающего необходимые настройки политики, а не редактирование стандартного файла от Microsoft.

После того как на проблемном клиенте был запущен отчет RsoP, следует идентифицировать те установки параметров групповых политик, которые могли вызывать проблемы. Безусловно, можно выбрать самый легкий путь и просто удалить все GPO для данного пользователя или компьютера, что, возможно, решит проблему, но подобный подход не поможет выяснить, какая именно настройка групповой политики послужила причиной конфликта. К тому же данная методика работает только для политик на базе административных шаблонов, но не для шаблонов предпочтений (по причинам, описанным выше). Данный подход не сработает и по отношению к политикам безопасности, которые могут не менее эффективно перевести систему в состояние сохранения старых настроек, поскольку эти настройки не отменяются при удалении распространившего их GPO. Таким образом, для того чтобы добраться до источника проблемы, нам потребуются другие методики и программные средства.

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

Если по данным отчета RSoP невозможно сразу же определить, какая настройка политики послужила причиной возникшей проблемы, следует попытаться сузить круг поиска возможных ее причин. В тех случаях когда непонятно, с какой именно категорией политик (политики на базе административных шаблонов или политики безопасности) связана возникшая проблемная ситуация, можно попробовать несколько вариантов дальнейших действий. Следует иметь в виду, что, поскольку ошибки, связанные с применением политик на базе административных шаблонов, в большей степени сбивают с толку, чем ошибки, связанные с применением политик безопасности, первым указателем на возможную причину проблемы может служить характер сообщения об ошибке. Например, если сообщение содержит текст типа Access Denied или Permission Denied, то это довольно явно указывает на связь проблемы с применением политики безопасности, но не политики установки ограничений на компьютеры пользователей, в то время как сообщения об ошибках, подобные приведенному на экране 1, скорее всего, связаны с применением политик на базе административных шаблонов.

Если характер полученного сообщения недостаточно понятен, существует несколько программных средств, способных помочь установить причину неполадок. При исследовании проблем, предположительно связанных с административными шаблонами, моим любимым средством является свободно распространяемая утилита regmon.exe от Sysinternals (http://www.sysinternals.com). В данной утилите можно устанавливать фильтрацию обращений к реестру по его разделам. Таким образом, если при выполнении действий, приводящих к проблемной ситуации, запустить regmon.exe, то можно отследить все обращения к четырем описанным разделам реестра, отвечающим за политики, в результате чего можно выявить параметр политики, порождающий данную проблему. На экране 4 показано, как утилита regmon.exe помогла мне отследить заданное политикой ограничение, запрещающее запуск программы PowerPoint. Приведенный случай, разумеется, является весьма упрощенным (поскольку данную политику можно было бы увидеть и через отчет RSoP, не прибегая к сортировке с помощью regmon.exe), тем не менее на этом примере можно понять идею использования утилиты regmon.exe для отслеживания проблем, связанных с политиками административных шаблонов, в тех случаях, когда отчет RSoP не содержит достаточно информации для идентификации причин проблемы.

Если есть подозрение, что возникшая проблема связана с политикой безопасности, нужно попытаться идентифицировать и отключить данную политику. Как отмечалось выше, применение политики безопасности особенно часто приводит к переходу системы в состояние сохранения старых настроек в тех случаях, когда не были отменены соответствующие настройки перед отключением действующего GPO. Поэтому для исключения подобного рода проблем следует с особой тщательностью выявлять и отменять все специфические настройки безопасности. Если требования норм безопасности, принятых в вашей организации, запрещают отменять политики безопасности в масштабах всего предприятия, следует выделить для тестирования группу из нескольких рабочих станций и попытаться решить проблему на них. Для того чтобы начать анализ проблемы «с чистого листа» (с точки зрения настройки параметров безопасности), лучше всего задействовать файл шаблона безопасности setup security.inf, что позволит привести настройки системы безопасности Windows в соответствие с параметрами по умолчанию, которые имеет операционная система сразу после завершения установки. Во всех системах Windows файл setup security.inf обычно хранится в каталоге %windir%security emplates. Для того чтобы применить данный шаблон, можно использовать утилиту secedit.exe либо импортировать его в локальный объект GPO на компьютере, для чего следует запустить GPE, щелкнуть правой кнопкой на разделе Computer ConfigurationWindowsSettingsSecurity Settings, после чего выбрать пункт Import Policy.

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

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

Проверка, проверка и еще раз проверка

Групповые политики обладают весьма богатыми возможностями. Но если перед применением GPO не будут выполняться тестовые мероприятия, это может привести к ежедневным нарушениям работы.

Следует всегда помнить о том, что перед применением новых настроек групповой политики все внесенные изменения должны быть тщательно протестированы. Если проблемы тем не менее возникли, то такие инструменты, как RSoP от Microsoft и утилита regmon.exe от SysInternals, помогут облегчить процесс устранения неполадок.


Редактор журнала Windows IT Pro (dmarelia@windowsitpro.net)