Mover contas de computador para nova UO em massa

9

Eu tenho uma UO com cerca de 2500 computadores. Preciso mover 580 deles para outra UO. Existe uma maneira de fazer isso com um arquivo em lotes? Eu tenho um arquivo de texto com os nomes dos computadores (não o FQDN).

Tux cinza
fonte

Respostas:

9
FOR /f %%i in (C:\path\to\textfile.txt) do (

  dsquery computer -name %%i | dsmove -newparent OU=newOU,DC=domain,DC=com

)

Isso deve cuidar disso para você.

edit: Já faz um tempo desde que eu tive que usar o dsmove :) Ele precisa do DN do objeto que você está movendo, então eu adicionei o dsquery na frente de um pipe para obter o DN da lista e depois canalizá-lo dsmove. Isso deve funcionar bem agora para uma lista apenas de nomes NetBIOS.

MDMarra
fonte
+1 para fazê-lo em um comando
Nixphoe 01/06
1

Um pequeno erro na resposta de Nixphoe - tovs doe uma faltado

FOR /f %%a in (file.txt) do dsquery computer -name %%a >> fqdnfile.txt

FOR /f %%b in (fqdnfile.txt) do dsmove %%b -newparent OU=newOU,DC=domain,DC=local
triste triste
fonte
1
Bem-vindo ao ServerFault. Sinta-se à vontade para fazer edições sugeridas nas postagens existentes . Essas sugestões serão examinadas pela comunidade para aprovação.
Jscott #
1

Supondo que você tenha os nomes de seus computadores em um arquivo de texto e 1 em cada linha, execute o seguinte comando para exportar o fqdn deles

FOR /f %%a in (file.txt) DO dsquery computer -name %%a >> fqdnfile.txt

Em seguida, execute o seguinte comando para movê-los. Por favor, use o comando echo no lue de dsmove para testar isso primeiro

FOR /f %%b in (fqdnfile.txt) DO dsmove %%b -newparent OU=newOU,DC=domain,DC=local

Teste. Deixe-me saber se não funcionar.

Nixphoe
fonte
1
Você não deve precisar do FQDN para dsmove afaik.
precisa saber é o seguinte
Doce, nunca realmente precisei mover coisas a granel antes. Mas eu li muito sobre o comando. Bom saber! Feliz que cheguei perto da mesma resposta que você fez :)
Nixphoe
1
@ Grey Tux Você deve executar o script cmdnão powershell.
Jscott #
1
deve ser% a em vez de %% a
Grey Tux
1
Sim, dois% é se você o estiver executando em um arquivo em lotes. Uma% é se você estiver executando-o a partir da linha de comando
Nixphoe
0

Um pequeno passo a passo para novos administradores: Obtenha o arquivo.txt onde os nomes dos computadores estão listados um por linha.

PC-001
PC-002
PC-003

Abra o CMD e verifique se a linha está indicando o mesmo local que o arquivo.txt e cole a linha abaixo

FOR /f %a in (file.txt) DO dsquery computer -name %a >> fqdnfile.txt

Isso criará um arquivo fqdnfile.txt no mesmo local que o arquivo.txt

Isso analisará fqdnfile.txt com Distinguir nomes (um por linha)

NOTA: você deve usar %%% duplo para arquivo BAT e% único para CMD

Em seguida, execute a linha abaixo.

FOR /f %b in (fqdnfile.txt) DO dsmove %b -newparent "OU=COMPUTERS,OU=My Bus,DC=Domain,DC=com"

NOTA: O seu nome distinto deve estar entre "" se você tiver espaços nos nomes, por exemplo, Meu barramento

Execute a linha abaixo para verificar se tudo foi movido corretamente

FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt
Matt
fonte