Были времена, когда консоль управления политикой группы
Group Policy Management Console (GPMC) не обеспечивала
достаточной гибкости для выполнения больших задач. В случае
установки, изменения или удаления делегаций для большого числа
объектов политики групп (Group Policy Object или GPO) GPMC
может быть немного неудобным средством. Но есть простая
альтернатива, которая абсолютно бесплатная. Решение
заключается в использовании сценариев Microsoft GPMC. Эти
сценарии с некоторого времени появились повсюду и постоянно
обновляются для поддержки Windows Vista и Windows Server 2008.
С помощью этих сценариев вы можете запросто изменить
полномочия для одного или всех объектов GPO.
Делегации для GPO
Перед тем, как вы сможете приступить к написанию сценариев
и автоматизации делегаций для GPO, важно знать об имеющихся
настройках. Все делегации, которые представлены ниже, можно
задать с помощью GPMC, но такой подход может занять гораздо
больше времени. Для управления GPO у вас есть следующие
возможности:
Создание GPO
Эту задачу можно делегировать для целого домена, но
настраивается она в узле Group Policy Objects внутри GPMC, как
показано на рисунке 1.
Рисунок 1: Создание GPO делегируется на уровне
домена
Привязка GPO
Способность привязки GPO к узлу в Active Directory – это
очень мощная возможность. После того, как GPO привязан,
объекты в узле (домен, сайт или организационная единица)
начинают автоматически получать настройки политики из
связанного с ними GPO. На рисунке 2 изображены настройки
делегации для привязки GPO к узлу.
Рисунок 2: Привязка GPO делегируется на уровне
сайта, домена или организационной единицы
Редактирование (Edit) и полное редактирование (FullEdit)
GPO
Возможность редактирования GPO обладает большой силой,
особенно если этот GPO уже связан с узлом в Active Directory.
Поэтому очень важно контролировать, кто может редактировать
GPO. Существует два уровня редактирования, один из которых
связан с удалением и редактированием безопасности для GPO. Эти
делегации выполняются на уровне GPO, как показано на рисунке
3.
Рисунок 3: Редактирование и управление (FullEdit)
GPO делегируется в GPO на базисе GPO
Использование сценариев GPMC для автоматизации делегации
безопасности GPO
Сценарии GPMC позволяют вам выполнить некоторые изменения в
безопасности GPO, что можно сделать и с помощь интерфейса GPMC
GUI - они лишь позволяют выполнить большие задачи быстрее.
Например, предположим, вы только что установили расширенное
управление политиками групп Advanced Group Policy Management
(AGPM) от компании Microsoft. Перед тем, как вы сможете
воспользоваться AGPM, вы должны изменить полномочия для всех
GPO с помощью GPMC, чтобы гарантировать, что администраторы не
смогут редактировать их с помощью GPMC. Если этого не сделать,
то объекты GPO, которые используются в настоящий момент
(показаны в GPMC), могут легко потерять синхронизацию с GPO,
которые вы импортируете в среду AGPM. Чтобы удалить и сбросить
полномочия для множества объектов GPO, необходимо выполнить
эту скучную задачу. Однако, с помощью сценария
GrantPermissionOnAllGPOs.wsf, эту задачу можно легко
выполнить! Другие сценарии GPMC выполняют функции схожие с
теми, что описаны ниже.
Примечание Для получения подробной
информации о AGPM обратитесь к ссылке Windows
Vista for the Enterprise.
Примечание Чтобы загрузить сценарии GPMC,
перейдите по ссылке Group
Policy Management Console Sample Scripts.
Сценарий GrantPermissionOnAllGPOs.wsf
Этот сценарий позволяет установить заданные полномочия для
пользователя или группы для всех объектов GPO в домене. Все
они появятся в GPO, даже если они не связаны с узлом Active
Directory. Ключ replace (заменить) очень полезен, т.к. он
позволяет удалить все существующие полномочия и заменить их
новыми. Если полномочия указаны для группы безопасности,
которая уже присутствует в списке полномочий для GPO, то для
этой группы безопасности будут применены полномочия с более
высоким приоритетом из этих двух (если не используется ключ
replace).
Синтаксис
Использование: GrantPermissionOnAllGPOs.wsf GroupName
/Permission:value [/Replace] [/Q]
[/Domain:value]GroupName: объект, для которого
устанавливаются полномочия Permission: задаваемый
уровень полномочий. Может быть 'Read' (читать), 'Apply'
(применить), 'Edit' (редактировать), 'FullEdit' (редактировать
полностью) 'None' (нет)Replace: указывает, что все
существующие полномочия должны быть заменены Q: тихий режим –
не отображать предупреждения во время выполнения сценария
Domain: DNS название домена
Пример
cscript GrantPermissionOnAllGPOs.wsf "GPO Admins"
/Permission:Edit Microsoft (R) Windows Script Host Version
5.7Copyright (C) Microsoft Corporation. All rights
reserved.
Внимание! При выполнении этого сценария все GPO в
домене будут обновлены в соответствии с указанными
настройками.
Обе части Active Directory и Sysvol объекта GPO будут
обновлены. В результате содержимое Sysvol каждого GPO будет
скопировано во все модели контроллеров домена, что может
вызвать дополнительный трафик репликации в вашем
домене.
Если вы замедлили сетевые ссылки или ограничили
пропускную способность между вашими контроллерами домена, вы
должны проверить объем данных в Sysvol, которые будут
скопированы перед выполнением этой задачи.
Do you want to proceed? (Вы желаете продолжить) [Y/N] y
(да) Updated GPO 'Default Domain Policy' to 'Edit' for GPO
Admins (обновлен объект 'Default Domain Policy' на Edit для
объекта Admins)Updated GPO 'Default Domain
Controllers Policy' to 'Edit' for GPO Admins (обновлен объект
'Default Domain Controllers Policy' на Edit для объекта
Admins)
Сценарий SetGPOCreationPermissions.wsf
Этот сценарий добавляет или удаляет возможность создания
GPO в домене для заданной группы безопасности или
пользователя.
Синтаксис
Использование: SetGPOCreationPermissions.wsf Group
[/Remove] [/Domain:value] Group: группа безопасности, для
которой устанавливаются права на создание GPO Remove: удаляет
полномочия вместо их предоставления Domain: DNS название
домена
Пример и результат
cscript SetGPOCreationPermissions.wsf "GPO Admins"
Microsoft (R) Windows Script Host Version 5.7 Copyright (C)
Microsoft Corporation. All rights reserved.
Added 'GPO Admins' as having GPO creation rights in
Fabrikam.com. (Для 'GPO 0Admins' добавлено право на создание
GPO в домене Fabrikam.com)
Сценарий SetGPOPermissions.wsf
Этот сценарий позволяет задать полномочия для определенных
GPO для определенной группы. Все другие сценарии выведут
правильный синтаксис или выдадут результат в случае
использования его с неправильными параметрами. Этот сценарий
выдаст ошибку, если вы не укажете для него аргументы.
Синтаксис
Использование:
SetGPOPermissions.wsf:<GPOName><GroupName>
/Permission:<PermissionLevel> [/Replace]
[/Domain:<DNSDomainName>] Permission: устанавливаемый
уровень полномочий. Может быть 'Read', 'Apply', 'Edit',
'FullEdit' или 'None' Replace: указывает, что все существующие
полномочия должны быть заменены Domain: DNS название домена
Пример и результат
cscript SetGPOPermissions.wsf "Hardened Server GPO"
"Server Operators" /Permission:Edit Microsoft (R) Windows
Script Host Version 5.7 Copyright (C) Microsoft Corporation.
All rights reserved.
Modified GPO Hardened Server GPO to give Server
Operators Edit rights.(изменен объект Hardened Server GPO –
операторам сервера предоставлено право
редактирования)
Сценарий SetGPOPermissionsBySOM.wsf
Этот сценарий задает указанные полномочия для заданного
объекта для всех GPO, которые находятся в SOM сайта, домена
или организационной единицы. С помощью этого сценария и ключей
можно разрешить полный контроль, т.к. ключи replace, none и
recursive позволяют вам управлять вашими полномочиями и
областью действия.
Синтаксис
Использование: SetGPOPermissionsBySOM.wsf SOM Group
/Permission:value [/Replace] [/Recursive] [/Domain:value] SOM:
название сайта, домена или OU для обработки Group: название
группы или пользователя, для которого предоставляются
полномочия Permission: предоставляемые полномочия. Могут быть
'None', 'Read', 'Apply', 'Edit' или 'FullEdit' Replace:
заменяет все существующие полномочия для указанного объекта.
Иначе, сценарий просто гарантирует, что указанный объект имеет
указанный уровень полномочий Recursive: применяет все
изменения также для всех дочерних OU Domain: DNS название
домена
Пример и результат
В этом примере возникла ошибка, но все хорошо, т.к. в
примере использовался ключ /Recursive и не было объектов,
связанных с OU Test.
cscript SetGPOPermissionsBySOM.wsf Servers "Server
Operators" /Permission:Read /Recursive Microsoft (R) Windows
Script Host Version 5.7 Copyright (C) Microsoft Corporation.
All rights reserved.
Updating all GPOs linked to OU Servers to give Read
rights to Server Operators (обновлены все объекты связанные с
OU Servers – операторам сервера предоставлены права на
чтение)
Updating all GPOs linked to OU Model Office to give
Read rights to Server Operators Updating permissions on linked
GPO 'Hardened Server GPO' (обновлены все объекты связанные с
OU Model Office – операторам сервера предоставлены права на
чтение. Обновлены полномочия для связанного объекта 'Hardened
Server GPO')
Updating all GPOs linked to OU Production to give Read
rights to Server Operators (обновлены все объекты связанные с
OU Production – операторам сервера предоставлены права на
чтение)Updating permissions on linked GPO 'Hardened
Server GPO' (обновлены полномочия для связанного объекта
'Hardened Server GPO')
Updating all GPOs linked to OU Test to give Read rights
to Server Operators (обновлены все объекты связанные с OU Test
– операторам сервера предоставлены права на
чтение)Error getting SOM
CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=Fabrikam,DC=com
(ошибка получения SOM)
Сценарий SetSOMPermissions.wsf
Целью этого сценария являются делегации, которые можно
задать для всех узлов Active Directory, с которыми можно
связать GPO. Т.к. эта функция касается лишь необходимых
полномочий, то необходим контроллер домена Windows Server 2003
или 2008, чтобы можно было воспользоваться полномочием
RSoPPlanning.
Синтаксис
Использование: SetSOMPermissions.wsf SOM Group
/Permission:value [/Inherit] [/Domain:value]
Параметры:
SOM: имя сайта, домена или OU для обработки
Group: название группы или пользователя, для которого
предоставляются полномочия Permission:
предоставляемые полномочия. Могут быть 'LinkGPOs',
'RSoPLogging', 'RSoPPlanning', 'All' или 'None' Inherit:
указывает, что данное полномочие должно быть унаследовано всем
дочерними контейнерами Domain: DNS название домена
Пример и результат
В этих двух примерах, полномочие RSOPLogging, а затем
RSOPPlanning было добавлено ко всем объектам GPO.
cscript SetSOMPermissions.wsf Servers "server
operators" /Permission:RSOPLogging /inherit Microsoft (R)
Windows Script Host Version 5.7Copyright (C)
Microsoft Corporation. All rights reserved.
Added the 'RSoP Logging Mode' permission for server
operators. (добавлено полномочие 'RSoP Logging Mode' для
операторов сервера)
cscript SetSOMPermissions.wsf Servers "server
operators" /Permission:RSOPPlanning /inherit Microsoft (R)
Windows Script Host Version 5.7Copyright (C)
Microsoft Corporation. All rights reserved.
Added the 'RSoP Planning Mode' permission for server
operators. (добавлено полномочие 'RSoP Planning Mode' для
операторов сервера)
Резюме
Сценарии GPMC позволяют сэкономить вам множество времени и
помогают, когда вам необходимо делегировать несколько GPO, а
еще больше, когда вам необходимо изменить все объекты GPO в
домене. Сценарии легко использовать, с их помощью можно легко
управлять всеми аспектами делегаций GPMC. После загрузки
определитесь с тем, какие делегации вам необходимо выполнить,
запустите сценарии, задайте ключи, а все остальное будет
сделано за вас.