Olá pessoal, tudo bem?

Atualmente estou trabalhando em um projeto grande de Active Directory de uma grande empresa. Cada dia estar sendo um aprendizado, pois nunca tinha trabalhado com um Active Directory tão grande, incluído vários servidores, vários domínios e florestas.

Recebi uma tarefa que era mover objetos computadores para várias OUs especificas. Fiz uma pesquisa rápida na internet encontrei vários artigos, utilizando o cmdlet Move-ADObject Powershell. Mas nenhum destes artigos explicava muito bem todos os parâmetros. Então resolvi escrever este artigo mostrando o que o script faz, passo a passo.

Solução

 

 

 

 

O principal desafio desta tarefa, era que os objetos dos computadores estão espalhados em várias OUs, dentro do domínio do Active Directory, o que dificulta muito a tarefa.

Recebi uma planilha com os hostnames dos computadores e as respectivas OUs que os objetos computadores deveriam ser movidas.

 

Poder do Powershell

 

 

 

 

Então com base nos vários artigos e comandos encontrados na internet, criei este script:

 

Temos duas variáveis que devemos ter muita atenção.

A primeira variável e a $computers, podemos usar um caminho de compartilhamento do arquivo de texto como também um caminho local do computador, exemplo:

$computers = Get-Content C:\movimenta-computer\move-computer.txt

A segunda variável seria a $TargetOU, que é o caminho da OU que vamos mover os objetos computadores do Active Directory e o parâmetro DistinguishedName, que você pode obter com o cmdlet Get-ADOrganizationalUnit, ou graficamente usando o Usuários e Computadores do Active Directory, conforme demostrado na imagem abaixo.

Agora é só criar um arquivo de texto com os hostnames de cada computador que deseja mover para OU específica. Se for usar compartilhamento para o script, basta criar um compartilhamento de arquivos com acesso a somente a leitura.

 

Observação: Os hostnames dos computadores devem estar escritos, um em cada linha do arquivo de texto.

Com script pronto, agora é só executar e depois verificar se realmente os objetos computadores foram movidos para OU desejada, conforme demostrado na imagem abaixo.

 

Script

 

 

 

 

Abaixe no meu GitHub, neste link aqui, o script utilizado neste artigo, altere da maneira que melhor atenda o seu cenário.

 

Referências

 

 

 

 

https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-adorganizationalunit?view=win10-ps

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-content?view=powershell-7

https://docs.microsoft.com/en-us/powershell/module/addsadministration/move-adobject?view=win10-ps

https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-adcomputer?view=win10-ps

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/foreach-object?view=powershell-7

 

Inscreva-se no meu canal do YouTube!

8 Responses

    • Boa tarde.

      Muito obrigado por prestigiar o meu trabalho.

      Cada VM possui um hostname, exemplo hostnames que começa com o nome GOISRV. Este script vai analisar a base de dados do domínio contoso.local e localizar os objetos computadores com os nomes iniciais GOISRV e mover para OU VMs “OU=VMs,DC=contoso,DC=local”

      Depois e salvar o script com o formato .ps1.

      $computerstomove = Get-ADComputer -LDAPFilter “(name=GOISRV*)” -SearchBase “cn=computers,dc=contoso,dc=local”
      foreach ($computertomove in $computerstomove) {
      Move-ADObject $computertomove -TargetPath “OU=VMs,DC=contoso,DC=local”
      }

      • Bom dia Gabriel.

        Gabriel, teria como também além de mover por iniciais do nome, mover para OUs instintas?

        No meu ambiente existe vários servidores de várias unidades, onde cada unidade tem sua inicial exemplo: goisrv, poasrv, jvsrv e por ai em diante, preciso mover cada vm para OUs diferente.

  1. Me ajudou muito, obrigado!

    Eu precisava de um que movesse assim como o seu mas também desabilitasse as maquinas, não consegui nenhum que funcionasse no ambiente e confesso que sou leigo de mais para editar eles kkk, mas com o seu consegui mover para uma OU especifica e desabilitei manualmente daí.

  2. Como faria para fazer este mesmo processo porem com usuarios e nao computadores ? Poderia me ajudar por gentileza ! Obrigado

Deixe uma resposta

Microsoft MVP
Siga e curta!
Categorias
Arquivo
Inteligência artificial em seu servidor.