Magic Quadrant™ para gerenciamento de acesso privilegiado 2025: Netwrix reconhecida pelo quarto ano consecutivo. Baixe o relatório.

Plataforma
Centro de recursosBlog
Gerenciando OUs e Movendo Seus Objetos com PowerShell

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”
      
Image

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
      
Image

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:

Image

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.

Compartilhar em

Saiba Mais

Sobre o autor

Asset Not Found

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.