Déplacer 2000 comptes ordinateurs vers 600 OU différentes
Le
Lyes

Bonjour
Je dois déplacer 2000 comptes ordinateurs d'une Unité d'organistation active
directory vers 600 Unités d'organisations différentes en fonction du nom des
comptes d'ordinateurs.
voici un exemple :
le cpt wks201-XP*** devra aller dans la sous OU
OU=WKS,OU=computers,OU 1-Rennes,DC=MYDOM,DC=COM
le cpt nbk201-XP*** devra aller dans la sous OU
OU=NBK,OU=computers,OU 1-Rennes,DC=MYDOM,DC=COM
le cpt wks305-2K*** devra aller dans la sous OU
OU=WKS,OU=computers,OU05-Brest,DC=MYDOM,DC=COM
le cpt nbk305-2K*** devra aller dans la sous OU
OU=nbk,OU=computers,OU05-Brest,DC=MYDOM,DC=COM
Où wks workstation les 3 chiffres qui suivent sont un code ville 2K/XP je
pense que vous avez compris
J'ai trouvé sur google le script ci dessous mais j'ignore comment le
personnaliser pour éviter de me coller les 2000 comptes ordinateurs à la main.
For /F "delims=" %i in ('dsquery * -filter
"(&(objectcategory=person)(objectclass=user)(memberof=CN=test,OU¬counts,DC=CSSTEST,DC=local))"') do dsmove -newparent "OU=Test,DC=CS STEST,DC=local" %i
Quelqu'un sait-il comment je dois faire?
Si vous voyez une autre solution pour arriver au résultat je suis ouvert à
toute les solutions.
Merci beaucoup de votre aide
Lyes
Je dois déplacer 2000 comptes ordinateurs d'une Unité d'organistation active
directory vers 600 Unités d'organisations différentes en fonction du nom des
comptes d'ordinateurs.
voici un exemple :
le cpt wks201-XP*** devra aller dans la sous OU
OU=WKS,OU=computers,OU 1-Rennes,DC=MYDOM,DC=COM
le cpt nbk201-XP*** devra aller dans la sous OU
OU=NBK,OU=computers,OU 1-Rennes,DC=MYDOM,DC=COM
le cpt wks305-2K*** devra aller dans la sous OU
OU=WKS,OU=computers,OU05-Brest,DC=MYDOM,DC=COM
le cpt nbk305-2K*** devra aller dans la sous OU
OU=nbk,OU=computers,OU05-Brest,DC=MYDOM,DC=COM
Où wks workstation les 3 chiffres qui suivent sont un code ville 2K/XP je
pense que vous avez compris
J'ai trouvé sur google le script ci dessous mais j'ignore comment le
personnaliser pour éviter de me coller les 2000 comptes ordinateurs à la main.
For /F "delims=" %i in ('dsquery * -filter
"(&(objectcategory=person)(objectclass=user)(memberof=CN=test,OU¬counts,DC=CSSTEST,DC=local))"') do dsmove -newparent "OU=Test,DC=CS STEST,DC=local" %i
Quelqu'un sait-il comment je dois faire?
Si vous voyez une autre solution pour arriver au résultat je suis ouvert à
toute les solutions.
Merci beaucoup de votre aide
Lyes
Gilles LAURENT et moi même avions répondu à cette question dans votre fil
intitulé "filtrer des ordinateurs par une partie de leur nom"
Sans retour de votre part, j'ai pour ma part consideré que vous aviez eu la
réponse ou au moins les pistes suffisantes...
Merci donc de nous dire où vous en êtes par rapport aux réponses apportées
dans le fil original.
Exemple vite fait d'une fonction a appeler avec le nom de la station en
paramètre et qui retournera la chaine OU complète:
Moveto = NewOu("wks201-XP***")
retournera la chaine:
OU=WKS,OU=computers,OU 1-Rennes,DC=MYDOM,DC=COM
Function NewOu(strComputerName)
NewOu = Null
If Len(strComputerName) < 6 Then
WScript.Echo "Error - The name of the computer " & strComputerName & " is
way too short for me!"
Exit Function
End If
Dim strTemp, strLeftOU, strMiddleOU, strRightOU, strEndDC
strEndDC = ",DC=MYDOM,DC=COM"
strMiddleOU = ",OU=computers,OU="
strLeftOU = "OU=" & Left(UCase(strComputerName), 3)
strTemp = UCase(Mid(strComputerName, 4, 3))
Select Case strTemp
Case "201"
strRightOU = "-Rennes"
Case "305"
strRightOU = "-Brest"
Case Else
WScript.Echo "Error - The computer name " & strComputerName & " has a
city code of '" & strTemp & "' that i didn't recognize yet!"
Exit Function
End Select
strRightOU = strTemp & strRightOU
strTemp = strLeftOU & strMiddleOU & strRightOU & strEndDC
WScript.Echo "Info - The computer " & strComputerName & " will be moved to
" & strTemp
NewOu = strTemp
End Function
Dim strMoveTo
strMoveTo = NewOu("nbk305-2K***")
If IsNull(strMoveTo) Then strMoveTo = "Null"
WScript.Echo "The NewOu function return " & strMoveTo
Je vous prie de m'excuser car j'avais republier mon post avec un
titre différent afin de mieux préciser ma demande et j'avais totalement
oublié mon précédent post que je ne surveillais plus depuis.
Je vous remercie bcp de votre réponse je vous ferai part du resultat
rapidement néanmoins ne disposant pas d'environnement de test et étant
soumis à une gpo de restriction logiciel portant entre autre sur les
outils de virtualisation , je vais faire une demande pour obtenir
l'autorisation de créer des OU de test avec des computeraccounts bidon .
Oui je ne fais pas ce que je veux (je suis stagiaire).
Merci beaucoup pour vos nombreuses réponses
Lyes
"jbongran" wrote:
Le droit d'énumérer les OU est suffisant à ce stade, il suffit d'utiliser
wscript.echo en lieu et place d'effectuer le move, comme indiqué dans mes
deux posts.
Ca permet d'avancer en attendant d'avoir les droits, les OU de test crées,
etc.