Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[ACTIVE DIRECTORY] AJOUT UTILISATEURS VIA EXCEL.VBS


Information sur la source

Catégorie :VBScript Classé sous : active, directory, creation, utilisateur, excel Niveau : Initié Date de création : 29/06/2006 Date de mise à jour : 29/06/2006 13:16:10 Vu : 24 594

Note :
Aucune note

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Comme sont nom l'indique, ce script permet d'ajouter autant d'utilisateur dans active directory qu'il y a de ligne dans le fichier Excel, ici nommé: ComptesUtilisateurs.xls (Attention: placer ce fichier dans le meme dossier que le script).
 

Source

  • '========================================================================
  • ' Script de création de comptes utilisateurs dans le conteneur "Users" a partir d'un fichier Excel
  • '========================================================================
  • '========================================================================
  • ' Déclaration des variables
  • '========================================================================
  • Dim oexapp, oexwk, oexws, owshshell, ocellule, i
  • dim nom, prenom, loggin, mdp, bureau, messagerie, ville, liste
  • liste = ""
  • '========================================================================
  • ' Accès au fichier Excel contenant les données des utilisateurs a créer
  • '========================================================================
  • set oexapp = wscript.createobject("Excel.Application")
  • set owshshell = wscript.createobject("wscript.shell")
  • oexapp.visible = false
  • set oexwk = oexapp.workbooks.open(owshshell.currentdirectory & "\ComptesUtilisateurs.xls")
  • set oexws = oexwk.activesheet
  • '========================================================================
  • ' Boucle d'extraction des données Excel ligne par ligne [~détail~]
  • '========================================================================
  • i = 6
  • Do until oexapp.cells(i,3).value = ""
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Assignation de chaque colonne Excel dans une variable
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • nom = oexapp.cells(i,3).value
  • prenom = oexapp.cells(i,4).value
  • loggin = oexapp.cells(i,5).value
  • mdp = oexapp.cells(i,6).value
  • bureau = oexapp.cells(i,7).value
  • messagerie = oexapp.cells(i,8).value
  • ville = oexapp.cells(i,9).value
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Choix du domaine et du conteneur d'Active Directory
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Set objDomain = GetObject("LDAP://dc=groupe,dc=adg")
  • Set objCN = GetObject("LDAP://CN=Users, dc=groupe, dc=adg")
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Création de l'utilisateur "# i" et assignation des valeurs: loggin, nom, prénom, bureau _
  • ' messagerie, ville et password
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Set objUser = objCN.Create("User", "cn= " & nom & "")
  • objUser.Put "sAMAccountName", loggin
  • objUser.Put "sn", nom
  • objUser.Put "givenName", prenom
  • objUser.Put "physicalDeliveryOfficeName", bureau
  • objUser.Put "mail", messagerie
  • objUser.Put "l", ville
  • objUser.SetInfo
  • Set objUser = GetObject("LDAP://cn=" & nom & ",CN=Users,dc=groupe,dc=adg")
  • objUser.SetPassword "P@ssw0rd"
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Placement de l'utilisateur dans le groupe "Utilisa. du domaine"
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Set objCN = GetObject("LDAP://CN=Users, dc=groupe, dc=adg")
  • Set objGroup = GetObject("LDAP://CN=Utilisa. du domaine, CN=Users, dc=groupe, dc=adg")
  • objGroup.Put "sAMAccountName", "Utilisa. du domaine"
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Activation du compte
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Set objUser = GetObject("LDAP://cn=" & nom & ", CN=Users, DC=groupe, DC=adg")
  • objUser.AccountDisabled = FALSE
  • objUser.SetInfo
  • liste = liste + nom & ", "
  • i = i+1
  • Loop
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • ' Récapitulatif des utilisateurs crées via la variable "liste"
  • ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • MsgBox "Les utilisateurs " & liste & " ont été créés et activés."
'========================================================================
' Script de création de comptes utilisateurs dans le conteneur "Users" a partir d'un fichier Excel
'========================================================================

'========================================================================
' Déclaration des variables
'========================================================================

Dim oexapp, oexwk, oexws, owshshell, ocellule, i
dim nom, prenom, loggin, mdp, bureau, messagerie, ville, liste
liste = ""

'========================================================================
' Accès au fichier Excel contenant les données des utilisateurs a créer
'========================================================================

set oexapp = wscript.createobject("Excel.Application")
set owshshell = wscript.createobject("wscript.shell")
oexapp.visible = false
set oexwk = oexapp.workbooks.open(owshshell.currentdirectory & "\ComptesUtilisateurs.xls")
set oexws = oexwk.activesheet

'========================================================================
' Boucle d'extraction des données Excel ligne par ligne [~détail~]
'========================================================================

i = 6
Do until oexapp.cells(i,3).value = ""

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Assignation de chaque colonne Excel dans une variable
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

nom = oexapp.cells(i,3).value
prenom = oexapp.cells(i,4).value
loggin = oexapp.cells(i,5).value
mdp = oexapp.cells(i,6).value
bureau = oexapp.cells(i,7).value
messagerie = oexapp.cells(i,8).value
ville = oexapp.cells(i,9).value

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Choix du domaine et du conteneur d'Active Directory
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Set objDomain = GetObject("LDAP://dc=groupe,dc=adg")
Set objCN = GetObject("LDAP://CN=Users, dc=groupe, dc=adg")

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Création de l'utilisateur "# i" et assignation des valeurs: loggin, nom, prénom, bureau _
' messagerie, ville et password
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Set objUser = objCN.Create("User", "cn= " & nom & "")
objUser.Put "sAMAccountName", loggin
objUser.Put "sn", nom
objUser.Put "givenName", prenom
objUser.Put "physicalDeliveryOfficeName", bureau
objUser.Put "mail", messagerie
objUser.Put "l", ville
objUser.SetInfo

Set objUser = GetObject("LDAP://cn=" & nom & ",CN=Users,dc=groupe,dc=adg")
objUser.SetPassword "P@ssw0rd"

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Placement de l'utilisateur dans le groupe "Utilisa. du domaine"
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Set objCN = GetObject("LDAP://CN=Users, dc=groupe, dc=adg")
Set objGroup = GetObject("LDAP://CN=Utilisa. du domaine, CN=Users, dc=groupe, dc=adg")
objGroup.Put "sAMAccountName", "Utilisa. du domaine"

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Activation du compte
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Set objUser = GetObject("LDAP://cn=" & nom & ", CN=Users, DC=groupe, DC=adg")
objUser.AccountDisabled = FALSE
objUser.SetInfo

liste = liste + nom & ", "
i = i+1
Loop

' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Récapitulatif des utilisateurs crées via la variable "liste"
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MsgBox "Les utilisateurs " & liste & " ont été créés et activés."

Conclusion

Dans mon fichier Excel, les donné des utilisateurs commence a la ligne 6 et la colonne 3, adapter suivant votre fichier.
Ce script active le compte lors de sa création, si vous souhaiter le laisser désactivé, remplacer "objUser.AccountDisabled = FALSE" par "objUser.AccountDisabled = TRUE"
 

Historique

29 juin 2006 13:16:10 :
^^ modification du titre, c'est tout ;)

Commentaires et avis

signaler à un administrateur
Commentaire de asimengo le 30/06/2006 13:08:13

c'est toujours mieux d'avoir un ZIP avec tous les fichiers.

signaler à un administrateur
Commentaire de FrancB le 08/02/2007 16:43:36

Heu dis-moi asimengo, tu veux pas non plus que je passe chez toi pour taper le code a ta place ;)
Tu veux un zip mais il n'y a pas 50 fichier, le fichier excel c'est a toi de le faire avec les noms que tu veux ajouté, et le script, t'as juste a créer un nouveau fichier texte et copier l'intégralité du code.

Que demande le peuple? ^^

signaler à un administrateur
Commentaire de zilbafraca le 26/03/2007 15:52:26

salut,j'ai tout fait comme il falai cependant ton script ne marche pas, j'avai 700 uilisateurs a ajouter, tu croit que le nombre de compte est trop élevé???

signaler à un administrateur
Commentaire de get_tips le 14/05/2007 16:51:06

Salut,
lorsque je veux exécuter le script il me demande une macro, (je suis novice en VB) est-ce que tu as fais une macro pour ton script ou pas ?

signaler à un administrateur
Commentaire de aqwelea le 15/05/2007 09:57:43

Salut FrancB

Je me suis tres largement inspire de ton script pour en creer un nouveau.
J'y ai ajoute un champs de mon fichier excel qui correspond a la valeur "msRADIUSFramedIPAddress".  Cependant, lorsque j'appelle la cellule excel correspondante, mon script plante. Il faut que je saisisse en dur la valeur dans mon script :-(

Je suis plus que debutant en dev et ne sais pas comment regle ce pb qui je pense est lie au format de la valeur. Or si je declare Integer nomvariable ... le script plante aussi ... :-(
Quelqu'un peut-il m'aider ?

signaler à un administrateur
Commentaire de aqwelea le 15/05/2007 17:18:06

C'est bon, un dev m'a aide :
Il faut utiliser l'outil de conversion cstr(nomvariable) :-)

@ ++

signaler à un administrateur
Commentaire de wasaseb le 03/10/2008 16:55:36

Bonjour,
Existe t'il une version de ce script fonctionnant avec Windows 2008?
Merci d'avance

signaler à un administrateur
Commentaire de FrancB le 03/10/2008 17:58:54

J'en ai aucune idée wasaseb, j'ai fait ce script il y à plus de 2 ans, et j'ai appliquer le code à mes besoins.

Il est clair qu'il ne suffira pas de copier coller le code en local chez vous pour que sa marche, il faudra l'adapter. Mais au moins sa permet d'avoir un bon fil directeur.

Bon courage à vous, sa m'avais bien embêter à l'époque ^^

signaler à un administrateur
Commentaire de wasaseb le 03/10/2008 18:43:52

Merci pour ta reponse.
Mon probleme c'est que je suis vraiment novice en vb...
Ca va pas etre simple.
Merci tout de meme

signaler à un administrateur
Commentaire de sofien007 le 25/11/2008 17:08:30

Bonjour, votre script m'a vraiment aidé mais je bloque dans la ligne

objUser.Put "sAMAccountName", login

Je ne sais pas pourquoi..en fait je suis nouveau dans ce domaine...

signaler à un administrateur
Commentaire de sofien007 le 25/11/2008 17:12:03

En fait l'erreur est la suivante : valeur null retourné avec un code 800054005..

signaler à un administrateur
Commentaire de sofien007 le 25/11/2008 17:39:30

J'ai utilisé cstr() et là c'est résolu mais le code crash dans la ligne  objUser.SetInfo
La sythaxe d'attribut spécifié au service d'annuaire est invalide!

signaler à un administrateur
Commentaire de Eijiro le 09/12/2008 16:28:48

Bonjour FrancB,

Bravo tout d'abord pour ce script, j'aurais une question je suis un admin réseaux, et ce script est intéressant, par contre je voulais m'en m'en aider car je dois créer un script, me permettant de récupérer des utilisateurs d'un fichier Excel, mais je dois les affecter à des OU différentes, et j'ai vraiment aucunes idées de comment rajouter ça dans le script ? car la je vois pas du tout.

signaler à un administrateur
Commentaire de le_joker_fou le 06/03/2009 11:52:37

Bonjour,

pour ma part, j'ai un problème car il me dit qu'il y a une erreur ligne 43 soit la ligne suivante :

Message d'erreur : "Une référence a été renvoyée par le serveur"

# ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ' Choix du domaine et du conteneur d'Active Directory
# ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
(l. 43) Set objDomain = GetObject("LDAP://dc=groupe,dc=adg")
# Set objCN = GetObject("LDAP://CN=Users, dc=groupe, dc=adg")

Faut il rajouter quelque choses sur cette ligne ou pas?

Merci d'avance.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

droit dans l'active directory [ par tomsower ] Bonjour,J'aimerais savoir lors de la creation d'un utilisateur quel ligne je dois ajouter pour lui attribuer des droits(controle total, lecture, ecrit Connexion Active Directory .NET [ par biowaste ] Bonjour !!Je dois développer un com+ en Visual Basic .NET et j'ai une question à ce sujet. Le com+ doit être exécuter "en tant qu'un" utilisateur préc creation de comptes utilisateurs [ par ganbalfro ] Je cré des comptes utilisateur dans active directory. Cependant j'aimerais savoir si il existe afin d'éviter de les recéer. Comment faut il faire? set Problème avec Active Directory et .NET [ par biowaste ] Bonjour !!Je dois développer un com+ en Visual Basic .NET et j'ai une question à ce sujet. Le com+ doit être exécuter "en tant qu'un" utilisateur préc Active Directory et VB [ par Caid ] Hola,Je cherche à identifier un utilisateur d'active directory depuis un programme visual basic.J'arrive à afficher la liste des utilisateurs de mon a creation de compte sur active directory [ par bolos ] je suis en train d'ecrire des script d'automatisation pour la creation de compte utilisateurs sous windows 2000 server et j'ai le probleme suivant:je creation et modification d'un compte dans Active Directory [ par mariuscesar ] salutje veux un code vb script permettant de créer et de modifier les comptes dans ADmerci Active Directory récupérer le nom d'utilisateur post Windows 2000 [ par Tuizi ] Bonjour,Voila j'arrive bien à récupérer le nom de mes utilisateurs Active Directorygrâce à la propriété Name des objet IADSUsers seulement c'est le no Vba - excel - Connection à l'active directory [ par salut tlm ] Salut les développeurs,Je cherche à ressortir en VBA des informations concernant les users stocké dans l'active directory. Et aussi la liste des users Information concernant un utilisateur dans Active directory [ par liocifer ] Bonjour,Dans le cadre d'un projet, j'ai au moins besoin de récupérer la date d'expiration d'un compte utilisateur dans l'AD.Je sais le faire en Vbscip


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.