Поиск по сайту:

Настройка групповых политик с помощью Windows PowerShell


В этом блоге я собираюсь описать, как использовать PowerShell для администрирования групповых политик в вашей среде Active Directory. Групповые политики контролируют окружение пользователей и компьютеров. Но это не только контроль: групповые политики могут помочь сделать ваши клиентские и серверные системы более удобными для пользователей.

Модуль групповой политики

Все команды можно найти в модуле Групповая политика. Просто выполните Get-Command на одном из ваших контроллеров домена, чтобы получить их все.

Get-Command -Module GroupPolicy

Создать GPO

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

New-GPO -Name "ScreenSaverTimeOut" -Comment "Sets the time to 900 seconds"

Настройте тайм-аут заставки групповой политики

А теперь плохая новость: вам нужно ввести ключ реестра.

Set-GPRegistryValue -Name "ScreenSaverTimeOut" -Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -ValueName ScreenSaveTimeOut -Type String -Value 900

Привязать GPO к организационному подразделению/домену/сайту

Теперь мы настроили GPO. Последний шаг - связать его с объектом Active Directory (OU, домен, сайт).

New-GPLink -Name "ScreenSaverTimeOut" -Target "ou=people,dc=pagr,dc=inet"

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

Просмотрите ваш GPO

Вы можете проверить ранее настроенную групповую политику, используя графический интерфейс или PowerShell.

Get-GPO -Name "ScreenSaverTimeOut" | Get-GPOReport -ReportType HTML -Path $Home\report.html
Invoke-Item $Home\report.html

Или откройте gpmc.msc и перейдите к объекту.

Настроить дополнительные параметры

Унаследованные групповые политики

Чтобы найти все унаследованные объекты групповой политики для организационной единицы, выполните

Get-GPInheritance -Target "ou=people,dc=pagr,dc=inet"

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

Если вы хотите заблокировать все GPO, унаследованные от родительских организационных единиц, выполните

Set-GPInheritance -Target "ou=people,dc=pagr,dc=inet" -IsBlocked 1

Сравните этот экран со(previous) предыдущим. Политика по умолчанию исчезла из родительского объекта и теперь недоступна.

Применение групповых политик

Как упоминалось ранее, принудительное применение переопределений блокируется. Таким образом, если я применю свою политику по умолчанию для домена, она должна снова присутствовать.

Set-GPLink -Name "Default Domain Policy" -Target "dc=pagr,dc=inet" -Enforced Yes

И он снова там:

Get-GPInheritance -Target "ou=people,dc=pagr,dc=inet" | Select InheritedGpoLinks

Настроить параметры безопасности

Настройки безопасности по умолчанию для всех вновь созданных GPO - это аутентифицированные пользователи (применить). Это означает, что все объекты в OU, сайте или домене, к которым применяется политика, имеют право читать GPO и, следовательно, применять его.

Например, у вас есть 10 пользователей в организационной единице. Вы хотите применить групповую политику только к одному пользователю. Тогда просто измените права группы аутентифицированных пользователей.

Для этого удалите группу аутентифицированных пользователей. Не обращайте внимания на предупреждения.

Set-GPPermission -Name "ScreenSaverTimeOut" -TargetName "Authenticated Users" -TargetType User -PermissionLevel None

Затем добавьте это снова. Но теперь разрешите только «Чтение».

Set-GPPermission -Name "ScreenSaverTimeOut" -TargetName "Authenticated Users" -TargetType User -PermissionLevel GPORead

И наконец, добавьте своего пользователя и предоставьте пользователю право «GPOApply».

Set-GPPermission -Name "ScreenSaverTimeOut" -TargetName "Petra" -TargetType User -PermissionLevel GPOApply