[VBS] Ajout d'un utilisateur à un groupe AD

Ajout d'un utilisateur à un groupe AD [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 27-02-2007 à 16:17:38    

Bonjour  :)  
 Je suis en train de faire un script vbs permettant de créer des utilisateurs dans Active Directory à partir d'informations stockées dans un fichier Excel. Jusque là pas de problème, les utilisateurs contenus dans le fichier.xls sont bien créés dans AD :wahoo:  Mais je voudrais que ces utilisateurs soient ajoutés dans un groupe et là...je bloque. :??:  
 
Voici mon code :
 

Code :
  1. Dim objExcel, objSpread, intRow, objFSO, objFolder, strDirectory
  2. Dim MyStr , IntADInitial, objUserVerif, termine, IntADMail,IntADGroup,objGroup,objUser,objCN
  3. ' Accès au fichier Excel contenant les données des utilisateurs a créer
  4. '========================================================================
  5. Set objExcel = CreateObject("Excel.Application" )
  6. Set objSpread = objExcel.Workbooks.Open(c:\Util.xls)
  7. intRow = 1 'commence a la ligne 1
  8. ' Debut de la boucle
  9. '========================================================================
  10. Do Until objExcel.Cells(intRow,1).Value = ""
  11. ' Assignation de chaque colonne Excel dans une variable
  12. IntADSurname = Trim(objExcel.Cells(intRow, 1).Value) 'Nom
  13. IntADUserName = Trim(objExcel.Cells(intRow, 2).Value) 'Prenom
  14. IntADGroup = Trim(objExcel.Cells(intRow, 3).Value) 'Groupe
  15. IntADMail = Trim(objExcel.Cells(intRow, 4).Value) 'Mail
  16. IntADInitial = Left(IntADUserName, 1 ) + Left(IntADSurname, 1 ) 'Initiales
  17. MyStr = Left(trim(IntADUserName), 1 ) + Left(trim(IntADSurname), 7 ) 'Premiere lettre du prenom et 7 lettres du nom
  18. IntOfficeOu= "Personnels"
  19. IntADMDP="test2@"
  20. ' Choix du conteneur d'Active Directory
  21. Set objOU = GetObject("LDAP://OU="& IntOfficeOu &",DC=dom,DC=fr" )
  22. ' Création de l'utilisateur et assignation des valeurs (nom,prenom...)
  23.  
  24. Set objUser = objOU.Create("User", "cn=" & Mystr ) 'Creation de l'user avec le login realise plus haut
  25. objUser.Put "givenName", intADUserName
  26. objUser.Put "sn", intADSurname
  27. objUser.Put "displayName", IntADUserName & " " & IntADSurName
  28. objUser.put "userPrincipalName", Mystr
  29. objUser.Put "SamaccountName", Mystr
  30. objUser.Put "mail", IntADMail
  31. objUser.Put "initials", IntADInitial
  32. objUser.SetInfo
  33. objUser.SetPassword IntADMDP 'Definition du mot de passe
  34. objUser.Put "pwdLastSet", 0 'Forcer le changement du MDP
  35. objUser.AccountDisabled = FALSE 'active le compte
  36. objUser.SetInfo
  37. ' Ajout de lutilisateur à son groupe
  38. Set objGroup = GetObject("LDAP://cn=" & IntADGroup & ",CN=users,DC=dom,DC=fr" )
  39. objGroup.add(objUser.SamaccountName)
  40. intRow = intRow + 1
  41. Loop
  42. msgbox "creation des utilisateurs terminee"
  43. objExcel.Quit
  44. set objexcel=nothing
  45. WScript.Quit


 
A l'exécution, mes utilisateurs sont bien créés dans l'AD mais ils ne sont pas ajoutés dans leur groupe.  :heink:  
 
Si vous aviez une solution à mon problème  :jap:  :jap:  Merci !

Reply

Marsh Posté le 27-02-2007 à 16:17:38   

Reply

Marsh Posté le 28-02-2007 à 09:23:02    

La ligne qui pose problème... :o
 
#
Set objGroup = GetObject("LDAP://cn=" & IntADGroup & ",CN=users,DC=dom,DC=fr" )
#
objGroup.add(objUser.SamaccountName)
 
Ca ne marche pas, or quand j'affiche IntADGroup, il m'affiche bien le bon grp  :??:  :o  :o

Reply

Marsh Posté le 28-02-2007 à 10:32:04    

fais un msgbox "LDAP://cn=" & IntADGroup & ",CN=users,DC=dom,DC=fr"  
pour voir si ca donne ce que tu attends peut etre  :??:  

Reply

Marsh Posté le 28-02-2007 à 13:54:16    

Hum...en fait j'ai modifié mon bout de code qui concerne l'ajout de l'utilisateur à son groupe
 

Code :
  1. Const ADS_PROPERTY_APPEND = 3
  2. Set objGroup = GetObject("LDAP://CN="& IntADGroup& ",CN=Users,DC=dom,DC=fr" )
  3. objGroup.PutEx ADS_PROPERTY_APPEND, "member", Array("CN="& Mystr &",OU=" &IntOfficeOu & ",DC=dom,DC=fr)
  4. objGroup.SetInfo
  5. if err.number<>0 then 
  6.      wscript.echo err.number & " " & err.description
  7.      err.Clear
  8. end if


 
Après exécution de  ce code, mes utilisateurs sont bien ajoutés dans leur groupe mais l'erreur suivante apparait : "1041 Redéfinition de nom". Je ne comprends pas vraiment d'où ça vient... :??:  :??:


Message édité par Tama25 le 28-02-2007 à 13:55:26
Reply

Marsh Posté le 28-02-2007 à 14:26:31    

l'ordre sous active directory n'est-il pas différent de celui que tu proposes ici ?
 
cf . http://mi.cnrs-orleans.fr/Security [...] ctory1.htm

Reply

Marsh Posté le 28-02-2007 à 14:40:53    

Je ne saisi pas bien ta question :o Il me semble que l'ordre est correcte. Je me suis inspiré de ce code : http://www.laboratoire-microsoft.org/scripts/22164/

Reply

Marsh Posté le 28-02-2007 à 14:45:03    

bon ben je ne sais pas... Désolé  :??:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed