Назад | Перейти на главную страницу

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

Я понимаю, что есть несколько способов резервного копирования объектов групповой политики - через Powershell, через Group Policy Mgmt и т. Д., Но как в Windows можно сделать резервную копию не только самих объектов групповой политики, но и их ссылок на соответствующие подразделения? Возможно ли это с помощью этих инструментов или для работы потребуется что-то вроде резервного копирования состояния системы?

Ура!

Фактические ссылки на объект групповой политики хранятся в объектах подразделения, домена или сайта в атрибуте gpLink. Это однозначный строковый атрибут, который содержит все gpo, разделенные каждым объектом gpo, заключенным в скобки [].

Атрибут gPLink содержит список всех контейнеров групповой политики, связанных с контейнером, и номер для каждого из перечисленных контейнеров групповой политики, который представляет параметры принудительно (ранее называвшиеся без переопределения) и отключено. Список отображается в порядке приоритета от самого низкого до самого высокого приоритета GPO.

Если вы хотите сделать это вручную, вы можете выполнить запрос глобального каталога для всех объектов, имеющих этот атрибут (gpLink = *). Если вы объедините это с выводом резервной копии gpmc, у вас все будет готово.

$searcher = New-Object system.DirectoryServices.DirectorySearcher
$searcher.SearchRoot=[adsi]"GC://dc=domainname,dc=acme,dc=com"
#$searcher.SearchScope="subtree"  #if you have child domains
$searcher.PageSize=1000
$searcher=[adsisearcher]"(gpLink=*)"
$searcher.ClientTimeout=600
$ADResults = @() 
$results=$searcher.FindAll()
foreach ($result in $results) { 
    $tempObj = New-Object psObject 
    $adProperties = $result.properties 
    foreach ($propertyName in $adProperties.propertyNames) { 
       if (@($adProperties.item($propertyName)).count -gt 1) { 
            $tempObj | Add-Member -MemberType noteproperty -Name $propertyName -Value $adProperties.item($propertyName)} 
       else {
        $tempObj | Add-Member -MemberType noteproperty -Name $propertyName -Value ($adProperties.item($propertyName) | Out-String -Width 4096).trim()} 
       } # end foreach $propertyName 
    $ADResults += $tempObj 
} # end foreach $result 
$ADResults | select distinguishedName, gpLink | Out-File results.txt -Width 4096

Некоторые ссылки могут быть довольно многочисленными. Если вы можете найти в файле результатов вхождение ..., это означает, что вам нужен буфер вывода большего размера, чем 4096.

Вы также можете найти полезным выполнить запрос для объектов, для которых установлен атрибут gpOptions. Атрибут gPOptions содержит параметр "Наследование политики блокировки". Он содержит целочисленное значение, которое указывает, включен ли параметр «Наследование политики блокировки» домена или подразделения (0) или отключен (1).

Ссылки на подразделения хранятся в базе данных AD. Так что резервное копирование состояния системы и восстановление AD сделают свою работу. У каждого контейнера есть атрибут gplink. Итак, если вы возьмете дамп этого атрибута ldifde, я думаю, вы сможете повторно импортировать его позже. Надеюсь, это поможет.

Попробуйте использовать инструмент Advanced Group Policy Management от Microsoft, который доступен «бесплатно» с пакетом Desktop Optimization Pack, если вы приобрели лицензии Software Assurance.

Если я правильно помню, он выполняет резервное копирование информации о ссылках на GPO, а также обеспечивает управление версиями, управление рабочим процессом и корзину для GPO.