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).

Tux gris
la source

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.

MDMarra
la source
+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
sadsad
la source
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.

Nixphoe
la source
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
Mat
la source