[active directory] ajout utilisateurs via excel.vbs

Soyez le premier à donner votre avis sur cette source.

Snippet vu 43 043 fois - Téléchargée 25 fois

Contenu du snippet

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 / Exemple :


'========================================================================
' 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"

A voir également

Ajouter un commentaire

Commentaires

cs_asimengo
Messages postés
281
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
18 mars 2009
-
c'est toujours mieux d'avoir un ZIP avec tous les fichiers.
cs_FrancB
Messages postés
4
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
8 mars 2010
-
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? ^^
zilbafraca
Messages postés
1
Date d'inscription
lundi 26 mars 2007
Statut
Membre
Dernière intervention
26 mars 2007
-
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é???
get_tips
Messages postés
7
Date d'inscription
mardi 27 février 2007
Statut
Membre
Dernière intervention
18 mai 2007
-
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 ?
aqwelea
Messages postés
11
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
4 janvier 2008
-
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 ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.