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
Leis de Privacidade de Dados por Estado: Abordagens Diferentes para a Proteção da Privacidade
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
O que é Gerenciamento de Registros Eletrônicos?
Análise de Risco Quantitativa: Expectativa de Perda Anual