Fazendo backup de objetos de política de grupo e seus links de unidade organizacional

3

Sei que há várias maneiras de fazer backup de GPOs - via Powershell, por meio de Group Policy Mgmt e assim por diante, mas como no Windows você pode fazer backup não apenas dos GPOs, mas também de links para as respectivas UOs? ? Isso é possível com essas ferramentas ou exigiria algo como um backup do estado do sistema para funcionar?

Felicidades!

    
por PnP 12.06.2012 / 22:19

3 respostas

4

Os links OU são armazenados no banco de dados do AD. Portanto, um backup de estado do sistema e uma restauração do AD seriam o trabalho. Cada contêiner tem um atributo chamado gplink. Então, se você pegar um ldifde dump desse atributo, eu acho que você poderia reimportá-lo mais tarde. Espero que isso ajude.

    
por 12.06.2012 / 23:34
4

Os links reais para um objeto de política de grupo são armazenados na unidade organizacional, no domínio ou nos objetos do site, no atributo gpLink. É um atributo de string de valor único que contém todos os gpo's, delimitados com cada objeto gpo entre colchetes [].

O atributo gPLink contém uma lista de todos os contêineres de Diretiva de Grupo vinculados ao contêiner e um número para cada contêiner de Diretiva de Grupo listado, que representa as configurações de opção Imposto (anteriormente conhecido como Sem Substituição) e Desativado. A lista aparece em ordem de prioridade do menor para o GPO de prioridade mais alta.

Se quisesse fazer isso manualmente, você poderia executar uma consulta de catálogo global de todos os objetos que possuem esse atributo (gpLink = *). Se você combinar isso com a saída do backup do gpmc, deverá estar tudo pronto.

$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

Alguns dos links podem ser bastante numerosos. Se você puder encontrar uma ocorrência de ... no arquivo de resultados, isso significa que você precisa de um buffer de saída maior que 4096.

Você também pode achar útil realizar uma consulta para objetos que tenham o atributo gpOptions definido. O atributo gPOptions contém a configuração Herança de Política de Bloqueio. Ele contém um valor inteiro que indica se a opção Bloquear Herança de Política de um domínio ou UO está ativada (0) ou desabilitada (1).

    
por 13.06.2012 / 20:55
0

Tente usar a ferramenta Gerenciamento avançado de diretiva de grupo da Microsoft, que está disponível gratuitamente para o Desktop Optimization Pack se você tiver adquirido licenças de garantia de software.

Se bem me lembro, ele faz backup de informações de links de GPOs e também fornece controle de versão, controles de fluxo de trabalho e uma lixeira para GPOs.

    
por 13.06.2012 / 19:07