Déplacer des comptes d'ordinateurs vers une nouvelle unité d'organisation en bloc


9

J'ai une unité d'organisation avec environ 2500 ordinateurs. J'ai besoin de déplacer 580 d'entre eux vers une autre unité d'organisation. Existe-t-il un moyen de le faire avec un fichier batch? J'ai un fichier texte avec les noms d'ordinateur (pas le FQDN).

Réponses:


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

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

)

Cela devrait s'en occuper pour vous.

edit: Cela fait un moment que je n'ai pas dû utiliser dsmove :) Il a besoin du DN de l'objet que vous déplacez, j'ai donc ajouté la requête devant un tuyau pour obtenir le DN de la liste, puis le diriger à déménager. Cela devrait fonctionner correctement maintenant pour une liste de noms NetBIOS uniquement.


+1 pour l'avoir fait en 1 commande
— Nixphoe

1

Une petite erreur dans la réponse de Nixphoe - tovs doet un manquantdo

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

1
Bienvenue à ServerFault. N'hésitez pas à apporter des modifications suggérées aux publications existantes . Ces suggestions seront examinées par la communauté pour approbation.
— jscott

1

En supposant que vous avez les noms de vos compteurs dans un fichier texte et 1 sur chaque ligne, vous exécutez la commande suivante pour en exporter le nom complet

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

Exécutez ensuite la commande suivante pour les déplacer. Veuillez utiliser la commande echo dans lue de dsmove pour tester cette première

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

Testez-le. Faites-moi savoir si cela ne fonctionne pas.


1
Vous ne devriez pas avoir besoin du nom de domaine complet pour dsmove afaik.
— MDMarra

Doux, jamais vraiment eu besoin de déplacer les choses en vrac auparavant. Mais j'ai beaucoup lu sur la commande. Bon à savoir! Heureux d'avoir été proche de la même réponse que toi :)
— Nixphoe

1
@Grey Tux Vous devez exécuter le script dans cmdpas powershell.
— jscott

1
il doit être% a au lieu de %% a
— Gray Tux

1
Oui, deux% si vous l'exécutez à partir d'un fichier batch. Un% est si vous l'exécutez à partir de la ligne de commande
— Nixphoe

0

Petit pas à pas pour les nouveaux administrateurs: Obtenez file.txt où les noms d'ordinateurs y sont répertoriés un par ligne.

PC-001
PC-002
PC-003

Ouvrez CMD et assurez-vous que votre ligne indique d'être au même emplacement que votre fichier.txt puis collez la ligne ci-dessous

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

Cela va créer un fichier fqdnfile.txt au même emplacement que votre fichier.txt

Cela analysera fqdnfile.txt avec les noms distinctifs (un par ligne)

REMARQUE: vous devez utiliser le double %% pour le fichier BAT et le simple% pour CMD

Exécutez ensuite la ligne ci-dessous.

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

REMARQUE: votre nom distinctif doit être placé entre "" si vous avez des espaces dans les noms, par exemple Mon bus

Exécutez la ligne ci-dessous pour vérifier si tout a été déplacé correctement

FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.