Gerenciando OUs e Movendo Seus Objetos com PowerShell
Jun 26, 2018
Uma unidade organizacional (OU) é um contêiner em Active Directory onde usuários, grupos e computadores, bem como outras OUs, podem ser armazenados. Cada AD domain pode ter sua própria hierarquia de unidade organizacional.
Neste artigo, você aprenderá sobre gerenciamento de OU e como usar scripts de PowerShell para criar, mover e excluir unidades organizacionais no AD; vincular uma Group Policy a uma OU; e mover contas de computadores e usuários para outra OU.
O PowerShell ISE é a melhor ferramenta para trabalhar com scripts PowerShell. Inicie a ferramenta PowerShell ISE com privilégios de administrador pressionando “Windows+R” e digitando “runas /profile /user:Administrator PowerShell_ISE” na janela Executar. Digite a senha do administrador quando solicitado. Alternativamente, você pode clicar com o botão direito do mouse no ícone do PowerShell ISE e escolher a opção “Executar como administrador”.
Para trabalhar com o AD e seus objetos, você precisa importar o módulo Active Directory para o Windows PowerShell. No Microsoft Windows Server 2008 R2, você precisa habilitar este módulo executando o seguinte comando:
Import-Module ActiveDirectory
No Microsoft Windows Server 2012 e versões posteriores, este módulo é ativado por padrão.
Criar OUs em um domínio do Active Directory com PowerShell
Você pode criar uma nova unidade organizacional no Active Directory usando o cmdlet New-ADOrganizationalUnit e especificando o nome de um novo objeto OU. Por padrão, o PowerShell criará a OU na raiz do domínio. O comando abaixo criará uma OU chamada “Regiões” no DC:
New-ADOrganizationalUnit “Regions”
Se você precisa de um caminho LDAP OU diferente, especifique seu nome distinto usando o parâmetro cmdlet –Path:
New-ADOrganizationalUnit “Regions” –Path “OU=Managers,DC=Enterprise,DC=com”
Mova uma OU para outro endereço LDAP
Se você precisa mover uma OU para outro local, use o cmdlet Move-ADObject. Observe que a OU de destino não deve estar protegida contra exclusão acidental. Se estiver, use este comando para remover essa proteção:
Set-ADOrganizationalUnit -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -ProtectedFromAccidentalDeletion $False
Agora você pode mover a OU para outro local:
Move-ADObject -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -TargetPath "OU=IT,DC=Enterprise,DC=Com"
Renomear uma OU
Para renomear uma unidade organizacional, use o cmdlet Rename-ADObject. O parâmetro -Identity especifica o objeto do Active Directory a ser renomeado e requer ou o seu nome distinto (DN) ou GUID.
Este comando renomeia a OU “Regions” para “Districts”:
Rename-ADObject -Identity "OU=Regions,OU=IT,DC=enterprise,DC=COM" -NewName Districts
Alternativamente, você pode usar o cmdlet Get-ADOrganizationalUnit com o parâmetro -Filter; ele não requer o caminho LDAP completo para a OU. No entanto, esse cmdlet pesquisará todo o AD e a ação será aplicada a todas as OUs que contêm o termo de pesquisa em seus nomes:
Get-ADOrganizationalUnit -Filter "Name -eq 'Regions'" | Rename-ADObject -NewName Countries
Aplique uma Política de Grupo a uma OU
Para atribuir uma Política de Grupo a uma OU, utilize o cmdlet New-GPLink que basicamente cria uma ligação entre o objeto de Política de Grupo (GPO) especificado e a OU. Você pode especificar qualquer uma das seguintes propriedades para a ligação:
- Ativado — Se o link estiver ativado, as configurações do GPO são aplicadas quando a Política de Grupo é processada para o site, domínio ou OU.
- Aplicado — Se o link for aplicado, ele não poderá ser bloqueado em um contêiner de nível inferior.
- Ordem — A ordem especifica a precedência das configurações do GPO.
O seguinte comando associa a GPO “Block Software” à OU “Districts” com o link ativado e aplicado:
New-GPLink -Name "Block Software" -Target "OU=Districts,OU=IT,dc=enterprise,dc=com" -LinkEnabled Yes -Enforced Yes
Mover Computadores e Usuários para uma Nova OU
Uma vez que você criou uma OU e, opcionalmente, a vinculou a uma GPO, é hora de preenchê-la com usuários e computadores. O cmdlet PowerShell Move-ADObject move qualquer objeto ou conjunto de objetos (como um usuário, um computador, um grupo ou outra OU) para uma OU diferente. O parâmetro -Identity especifica qual objeto ou contêiner do Active Directory deve ser movido. Note que você precisa inserir o caminho LDAP completo ou SID do objeto; não é possível usar seu SamAccountName. O exemplo abaixo demonstra como mover um usuário (John Brown) para a OU “Districts”:
Move-ADObject -Identity "CN=John Brown,CN=Users,DC=enterprise,DC=com" -TargetPath "OU=Districts,OU=IT,DC=Enterprise,DC=Com"
Utilize a mesma sintaxe para mover objetos de computador. O seguinte comando moverá o computador “R07GF” para o contêiner “Computers”:
Move-ADObject -Identity "CN=R07GF,OU=CEO,DC=enterprise,DC=com" -TargetPath "CN=Computers,DC=Enterprise,DC=Com
Mova computadores e usuários do AD para outra OU usando um arquivo CSV ou TXT
Se você tem uma lista predefinida de objetos para mover, pode salvá-la como um arquivo CSV e depois importar esse arquivo para o Active Directory. A lista CSV deve estar no seguinte formato:
Utilize este script PowerShell para mover contas de usuário AD listadas em um arquivo CSV:
# Specify target OU. This is where users will be moved.
$TargetOU = "OU=Districts,OU=IT,DC=enterprise,DC=com"
# Specify CSV path. Import CSV file and assign it to a variable.
$Imported_csv = Import-Csv -Path "C:tempMoveList.csv"
$Imported_csv | ForEach-Object {
# Retrieve DN of user.
$UserDN = (Get-ADUser -Identity $_.Name).distinguishedName
# Move user to target OU.
Move-ADObject -Identity $UserDN -TargetPath $TargetOU
}
Para mover contas de computador AD listadas em um arquivo de texto, use o seguinte script PowerShell:
# Specify path to the text file with the computer account names.
$computers = Get-Content C:TempComputers.txt
# Specify the path to the OU where computers will be moved.
$TargetOU = "OU=Districts,OU=IT,DC=enterprise,DC=com"
ForEach( $computer in $computers){
Get-ADComputer $computer |
Move-ADObject -TargetPath $TargetOU
}
Remover uma OU do AD
O cmdlet Remove-ADOrganizationalUnit remove uma OU. A OU não deve estar protegida contra exclusão acidental. Você pode remover a opção de exclusão acidental para cada OU que contenha “Continents” no nome usando os cmdlets Get-ADOrganizationalUnit e Set-ADOrganizationalUnit da seguinte forma:
Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $False
Utilize o seguinte comando para remover todas as OU que contêm “Continents” no nome do AD:
Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Remove-ADOrganizationalUnit –Recursive
Será solicitado que confirme a exclusão:
Observe que o parâmetro -Recursive remove tanto a OU quanto todos os seus objetos filhos. Os objetos filhos serão excluídos mesmo que a proteção contra exclusão esteja ativada para eles.
Conclusão
Agora que você aprendeu a gerenciar OUs no Active Directory usando scripts PowerShell, você pode automatizar uma variedade de operações simples relacionadas à gestão de OU. Antes de testar esses comandos, certifique-se de habilitar o recurso Active Directory Recycle Bin para que você possa facilmente reverter quaisquer exclusões acidentais. Também é prudente acompanhar cuidadosamente todas as alterações em suas unidades organizacionais.
Conteúdo relacionado selecionado
- Como encontrar usuários e computadores desativados ou inativos no AD usando PowerShell
- Como detectar alterações em unidades organizacionais e grupos no Active Directory
- Como obter um relatório de permissões de OU do Active Directory
- Como obter uma lista de todos os usuários de uma OU específica
- Como listar todos os computadores em uma OU
- Como detectar quem modificou as permissões de uma OU
Compartilhar em
Saiba Mais
Sobre o autor
Jeff Melnick
Diretor de Engenharia de Sistemas
Jeff é um ex-Diretor de Engenharia de Soluções Globais na Netwrix. Ele é um blogueiro, palestrante e apresentador da Netwrix há muito tempo. No blog da Netwrix, Jeff compartilha lifehacks, dicas e truques que podem melhorar drasticamente sua experiência em administração de sistemas.
Saiba mais sobre este assunto
As 10 principais ferramentas ITDR para segurança centrada na identidade em 2026
UEBA (User and Entity Behavior Analytics): guia completo para detecção, casos de uso e implementação
NIST CSF 2.0: Novidades no Cybersecurity Framework
Software de conformidade SOX: automatizando controles e evidências de auditoria
As 7 melhores ferramentas de conformidade para automatizar auditorias de segurança em 2026