DOC / 0418 WinITPro.ru

Управление групповыми политиками (GPO) в Active Directory с помощью PowerShell

Основной классический инструмент для управления групповыми политиками (GPO) в домене Active Directory — графическая консоль Group Policy Management Console (gpmc.msc). Однако для автоматизации и повышения эффективности некоторых задач управления GPO в Active Directory, вы можно использовать PowerShell, который предоставляет широкие возможности по администрированию групповых политик.

Содержание:

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

Для управления доменными групповыми политиками на вашем компьютере должен быть установлен модуль GroupPolicy. Данный модуль доступен в Windows Server после установки компонента Group Policy Management. Данную опцию можно установить из консоли Server Manager или с помощью PowerShell:

Install-WindowsFeature GPMC -IncludeManagementTools

Group Policy Management в Windows Server

Если вы хотите администрировать GPO с рабочей станции с десктопной редакцией Windows 10 или 11, модуль групповых политик устанавливается через RSAT:

Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0

Полный список PowerShell командлетов в модуле GroupPolicy можно вывести с помощью команды:

Get-Command –Module GroupPolicy

полный список командлетов PowerShell в модуле GroupPolicy

С помощью PowerShell модуля GroupPolicy вы можете:

  • Создать или удалить GPO
  • Привязать, отвязать GPO от OU
  • Создать резервную копию или восстановить политику
  • Задать разрешения на GPO, настроить наследование

Управление GPO с помощью PowerShell

Рассмотрим несколько типовых задач администратора, в которых можно использовать PowerShell для управления групповыми политиками.

Чтобы создать новую пустую политику, воспользуйтесь командой:

New-GPO -Name spbTestGPO -Comment "Testing GPO PowerShell"

Если у вас в домене созданы стартовые групповые политики (Starter GPO), вы можете создать новую политику на основе такого шаблона (например, с определенными настройками Security Baseline):

New-GPO -Name spbTestGPO2 -StarterGPOName "Windows 10 Security Baseline"

Чтобы назначить политику на определенную OU, используйте командлет New-GPLink:

Get-GPO spbTestGPO | New-GPLink -Target "ou=test,ou=spb,ou=ru,dc=winitpro,dc=loc"

New-GPO создать новую групповую политику в домене Active Directory

Чтобы отлинковать GPO от OU:

Remove-GPLink -Name spbTestGPO -Target "ou=test,ou=spb,ou=ru,dc=winitpro,dc=loc"

Если нужно отключить применение GPO, но не удалять связь, используется командлет Set-GPLink:

Set-GPLink -name spbTestGPO -Target "ou=test,ou=spb,ou=ru, dc=winitpro,dc=loc" -linkenabled no

GPO перестала применяться к OU, но осталась слинкованной.

Если нужно применить GPO в принудительном режиме, добавьте параметр -Enforced Yes.

GPO отключить ссылку GPO: link enabled

Следующая однострочная команда PowerShell создаст новую GPO, которая меняет настройки одного параметра реестра (отключает автообновление драйверов), ограничит применение политики определенной группой безопасности, и прилинкует к определенному OU:

$key = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching'
New-GPO 'spbDisableDriverUpdate' | Set-GPRegistryValue -Key $key `
-ValueName 'SearchOrderConfig' -Type DWORD -Value 0 | Set-GPPermissions -Replace `
-PermissionLevel None -TargetName 'Authenticated Users' -TargetType group | `
Set-GPPermissions -PermissionLevel gpoapply -TargetName 'spb_admins' `
-TargetType group | New-GPLink -Target "ou=test,ou=spb,ou=ru,dc=winitpro,dc=loc" –Order 1

Модуль PowerShell не позволяет изменить значение произвольного параметра GPO из административных admx шаблонов. Для редактирования доступны только параметры реестра, распространяющиеся через Group Policy Preferences.

С помощью командлета Get-GPO можно вывести информацию о конкретном объекте GPO или о всех политиках в домене. Данный командлет возвращает GUID политики (часто нужен при диагностике применения GPO на компьютерах или решения проблем с репликацией объектов политик при проверке состояния AD), время создания, модификации политики, примененные WMI фильтры GPO.

Get-GPO -Domain winitpro.ru -All

Get-GPO вывод информации о GPO

Можно вывести настройки WMI фильтра, привязанного к GPO (но изменить настройки фильтра не получится):(Get-GPO spbWin10Settings).WmiFilter

PowerShell: применение GPO, результирующие политики

Для обновления групповых политик на удаленных компьютерах используется командлет Invoke-GPUpdate. Можно обновить настройки GPO на конкретном компьютере:

Invoke-GPUpdate -Computer "corp\pc0200" -Target "User"

Или на всех компьютерах в указанной OU:

Get-ADComputer –filter * -Searchbase "ou=Computes,OU=SPB,dc=winitpro,dc=com" | foreach{ Invoke-GPUpdate –computer $_.name -force}

Командлет Get-GPOReport используется для построения HTML/XML отчетов с настройками указанной политики:

Get-GPOReport -name spb-BitlockerEncryption -ReportType HTML -Path "C:\ps\bitlockerpolicy.html"

В данном случае мы вывели все настройки в политике автоматического сохранения ключей BitLocker в AD.

powershell: создаем результирующий отчет по GPO с помощью Get-GPOReport

Командлет Get-GPResultantSetofPolicy позволяет построить результирующий отчет (RSoP — Resultant Set of Policy) по примененным групповым политикам к указанному пользователю и (или) компьютеру. Этот отчет выглядит аналогично HTML отчету о примененных политиках к компьютеру, который генерируется с помощью утилиты gpresult ( GPResult /h c:\ps\gp-report.html /f ). Командлет позволяет получить отчет по результирующим групповым политикам с удаленного компьютера:
Get-GPResultantSetOfPolicy -user kbuldogov -computer corp\pc0200 -reporttype html -path c:\ps\gp_rsop_report.html

Резервное копирование и восстановление GPO

С помощью PowerShell вы можете создавать резервные копии объектов групповых политик в домене и восстанавливать их.

Можно создать резервную копию всех GPO:

Backup-GPO -All -Path C:\Backup\GPOs\

Или только одной политики:
Backup-GPO -Name spbWin10Settings -Path C:\Backup\GPOs -Comment ″Test GPO Backup PowerShell″

Для восстановления GPO используется:

Restore-GPO -Name spbWin10Settings -Path C:\Backup\GPOs\

Вы можете хранить несколько версий резервных копий GPO в одной папке. Чтобы восстановить определенную версию GPO, нужно указать ее ID резервной копии (32 разрядный идентификатор):

Restore-GPO -Path ″C:\GPO Backups″ -BackupID 1235469-1234-5432-AAAA-8987778333

ORIGINAL / ATTRIBUTION

Источник материала

Источник материала — WinITPro.ru. Оригинальная статья и авторство указаны по ссылке ниже.

Оригинал статьи на WinITPro.ru ↗

https://winitpro.ru/index.php/2021/10/18/upravlenie-gpo-v-active-directory-powershell/

Материал проверен 09.10.2026. При изменении программного обеспечения сверяйтесь с актуальной документацией.
← Вернуться в базу знаний