Sua estrutura de OUs provavelmente não serve para nada
Sete em cada dez OUs do seu Active Directory provavelmente não fazem nada.
Não é exagero. É o que apareceu quando rodei uma auditoria de estrutura num ambiente com cerca de 250 OUs: menos de um terço tinha GPO vinculada. Delegação real, menos de dez.
O resto existe. Ocupa espaço na árvore. Recebe objetos. E não serve para coisa nenhuma.
O critério que quase ninguém aplica
Toda OU que você cria deveria responder a uma pergunta: o que eu vou pendurar aqui?
Só existem duas respostas válidas.
A primeira é uma GPO, porque política de grupo se vincula a OU, e você quer que ela atinja um conjunto específico de objetos, não o domínio inteiro.
A segunda é uma delegação, porque você quer que alguém administre aquele pedaço do diretório sem precisar ser Domain Admin.
É isso. Não há uma terceira resposta.
"Organizar" não conta. O AD já sabe o que é usuário, computador e grupo pelo tipo do objeto. Você não precisa de pasta para separar o que o sistema já distingue sozinho. Uma OU que existe só para "deixar organizado" está resolvendo um problema visual que ninguém tem, e criando um problema estrutural que todo mundo herda.
O teste é binário: se uma OU não recebe GPO nem delegação, ela não deveria existir.
Fácil de aplicar. Quase ninguém aplica.
O que a auditoria mostrou
Cruzei as duas coisas, GPO vinculada e permissão própria não-herdada:
~250 OUs no total
Com GPO vinculada: menos de um terço
Com delegação real: menos de dez
OUs que não servem
para nada: cerca de 70% do total
Sete em cada dez OUs daquele ambiente existem sem propósito.
Não é negligência de uma pessoa. É sedimento. Camadas de anos, cada uma acrescentada por alguém que precisava de "um lugar para colocar isso".
Como se chega nesse estado
Os padrões que apareceram são os mesmos em qualquer ambiente que envelheceu sem revisão.
OU com nome de pessoa. Alguém pediu para separar seus objetos, alguém criou. Zero GPO, zero delegação. A pessoa saiu da empresa. A OU ficou.
OU de teste que virou produção. Teste-Scripts, Teste-WSUS. Criada para um experimento, nunca removida. O experimento acabou há três anos.
Hierarquia duplicada. A mesma árvore de departamentos existe em dois níveis diferentes. Alguém tentou reorganizar, criou a estrutura nova, migrou metade, desistiu. As duas continuam lá.
O mesmo nome em cinco lugares. Uma sigla de departamento aparece em profundidades diferentes da árvore. Ninguém sabe qual é a "certa". Todas recebem objeto.
Cinco níveis de profundidade. Uma OU dentro de outra com o mesmo nome. Isso não é hierarquia. É sintoma.
O custo de não ter critério
Estrutura de OU sem propósito não é só feio. Ela cobra.
GPO vai para a raiz. Se a estrutura não serve para vincular política, alguém acaba vinculando no domínio inteiro, e aí ela atinge os Domain Controllers junto. Dois anos depois, ninguém sabe de onde veio aquela configuração.
Delegação vira Domain Admin. Se não existe OU que represente uma fronteira administrativa, o help desk não pode receber permissão de resetar senha só onde deveria. A saída fácil é dar poder demais.
Objeto entra no lugar errado. Com cinco OUs chamadas DICOR em níveis diferentes, o objeto vai parar em qualquer uma. E aí a GPO não aplica, e você passa a tarde no gpresult tentando entender por quê.
Auditoria vira impossível. "Quem pode mexer nos usuários do financeiro?" não tem resposta quando existem três OUs de financeiro e nenhuma delas tem delegação definida.
O que rodar no seu ambiente
Duas perguntas. Cinco minutos.
Quantas das minhas OUs têm GPO?
Get-ADOrganizationalUnit -Filter * -Properties LinkedGroupPolicyObjects |
Select-Object Name,
@{N='GPOs';E={($_.LinkedGroupPolicyObjects).Count}} |
Group-Object GPOs |
Select-Object @{N='Qtd_GPOs';E={$_.Name}}, Count |
Sort-Object Qtd_GPOs
Quantas têm delegação de verdade?
Get-ADOrganizationalUnit -Filter * -Properties nTSecurityDescriptor |
ForEach-Object {
$ou = $_.Name
$_.nTSecurityDescriptor.Access |
Where-Object { -not $_.IsInherited } |
Where-Object {
$_.IdentityReference.Value -notmatch
'SELF|SYSTEM|BUILTIN|CREATOR|Everyone|Authenticated|Domain Admins|Enterprise Admins|Domain Controllers'
} |
ForEach-Object {
[PSCustomObject]@{ OU = $ou; Quem = $_.IdentityReference.Value }
}
} | Group-Object Quem | Sort-Object Count -Descending
O segundo filtra os grupos que o AD cria sozinho e mostra quem de verdade recebeu poder, e em quantas OUs.
Se a lista vier quase vazia, você tem a mesma situação do ambiente que auditei: uma árvore grande que não delega nada.
O que fazer com o resultado
Não saia apagando OU. Objeto dentro de OU apagada some junto, e a proteção contra exclusão acidental existe justamente por isso.
O primeiro passo não é limpar. É entender por que a estrutura ficou assim, e aí decidir qual estrutura você teria criado se estivesse começando do zero.
Isso é projeto, não faxina. E é a diferença entre operar um AD e projetar um AD.
Quantas OUs você tem? E quantas delas você consegue justificar?