CRÉATION D'UTILISATEURS AD VIA EXCEL AVEC RAPORT DES CRÉATIONS ET DES ERREURS.
cs_yuna02
Messages postés3Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention 4 septembre 2006
-
4 sept. 2006 à 09:10
breil007
Messages postés4Date d'inscriptionlundi 19 mars 2007StatutMembreDernière intervention 8 juin 2010
-
4 juin 2010 à 11:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
breil007
Messages postés4Date d'inscriptionlundi 19 mars 2007StatutMembreDernière intervention 8 juin 2010 4 juin 2010 à 11:21
bonjour, je suis intéressé par votre script, mais j'aimerais savoir comment créer mon fichier xls ?
DFORLER
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention21 avril 2010 30 juin 2007 à 10:08
Oui effectivement le script doit être lancé en local sur le serveur.
Car on ne peut pas partager le répertoire à distance (du moins je ne suis vraiment pas sur que cela soit possible)
Sinon pour strHomeFolder effectivement dans mon script original j'ai utilisé cette entrée dans le fichier excel, donc si tu ne le rajout pas il ne sert à rien.
Voilà bonne chance et bon script
floweb81
Messages postés2Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention27 octobre 2007 13 juin 2007 à 10:58
hello, tout d'abord un grand merci pour ce script qui m'a largement inspiré pour créer le mien!
Je rencontre des problèmes pour la création du share. N'y a t'il pas une erreur dans:
objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "" & Mystr & " /unlimited"
on crée bien le share sur une machine distante? ou le script est exécuté sur la meme machine?
j'ai également remarqué que strHomeFolder n'était utilisé nul part!?
Je débute dans les scripts, donc peut-être que des détails m'ont échapés...
Merci de m'éclaircir!
DFORLER
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention21 avril 2010 18 avril 2007 à 23:28
----Attention----
Dans ma réponse à DANY93, je ne génère plus le SAMACCOUNTNAME il faut qu'il soit dans votre fichier excel ....
DFORLER
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention21 avril 2010 18 avril 2007 à 23:22
Premièrement, pardon pour le délais de la réponse DANY93, mais cela pourra peut être aider quelqu'un d'autre qui voudrait utiliser le script.
La boucle de création des utilisateurs commence au premier ""Do Until ObjExcel.cells"" et fini a la dernière ""loop"" après le ""int roow = introow +1""
Sinon pour ta boucle as tu vérifier qu'il n'y avait pas de remarque devant une de ces 2 commandes ?
Autre, as-tu bien les champs demandés (nom, prénom, bureau, etc?. ) dans le cas ou tu n'es pas sur tu peux vérifier en ajoutant des remarques sur les optionnels, pour ne garder que les noms, prénoms, mdp
Comme je l'ai signalé ce script à été fait pour un besoin identifié. Puis je l'ai rapidement amélioré pour le poster (afin qu'il y ai des commentaires et qu'il soit plus compréhensif) toutefois il ne comprends pas de vérification des champs vides.
En revanche si tu remplaces la partie création de l'utilisateur, par quelque chose comme ça :(tu ne devrais plus avoir de PB)
'____________________________________________________________
' debut de la boucle
'____________________________________________________________
Do Until objExcel.Cells(intRow,1).Value = ""
'____________________________________________________________
' Creation de l'utilisateur
'____________________________________________________________
Set objOU = GetObject("LDAP://" & IntOU )
Set objUser = objOU.Create("User", IntUserldap)
If IntUserldap <>"" then
' msgbox "le champ est :" & IntUserldap
objUser.Put "distinguishedname", IntUserldap
else
msgbox "le champ 1 du fichier excel ne doit pas être vide" & IntGivenName, IntOU, IntSamaccountName
End if
If IntSamaccountName <>"" then
' msgbox "Le champ est :" & IntSamaccountName
objUser.Put "SamaccountName", IntSamaccountName
else
msgbox "le champ 8 du fichier excel ne doit pas être vide" & IntGivenName, IntOU
End if
objUser.SetInfo
' Activation du compte / forcer le changement du MDP /
objUser.SetPassword IntADMDP
objUser.Put "pwdLastSet", -1
objUser.AccountDisabled = FALSE
objUser.SetInfo
If userPrincipalName <>"" then
objUser.put "userPrincipalName", IntuserPrincipalName
else
End if
If IntGivenName <>"" then
objUser.Put "givenName", IntGivenName
else
End if
' objUser.SetInfo
If Intsn <>"" then
objUser.Put "sn", Intsn
else
End if
If IntdisplayName <>"" then
objUser.Put "displayName", IntdisplayName
else
End if
If IntADDescript <>"" then
objUser.put "Description", IntADDescript
Else
End if
If IntOfficeName <>"" then
objUser.Put "physicalDeliveryOfficeName", IntOfficeName
Else
End if
If Intinitials <>"" then
objUser.Put "initials", Intinitials
Else
End if
If InttelephoneNumber <>"" then
objUser.Put "telephoneNumber", InttelephoneNumber
Else
End if
If Intmail <>"" then
objUser.Put "mail", Intmail
Else
End if
objUser.SetInfo
intRow = intRow + 1
cs_dany93
Messages postés1Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention 5 décembre 2006 5 déc. 2006 à 18:32
Bonjour,
Excellent ton script
Toutefois je ne vois pas ou se fait la boucle, il me créer un utilisateur et s'arrête me disant creation utilisateur terminé. Et me creer toujours le même utilisateur, et ceci quelque soit la ligne à laquelle commence mes utilisateurs sur le fichier excel.
Merci pour ce script
DFORLER
Messages postés14Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention21 avril 2010 27 nov. 2006 à 20:06
Bonjour,
Désolé pour le retard mais je n'ai pas regardé mon poste depuis longtemps. Si toutefois tu cherches encore la réponse. Pour tester si l'utilisateur existe je recherche son samaccountname existe en fonction de celui que je veux créer. Avec un simple
Une fois le GetObject fait.
If objUser.samaccountname <> Mystr Then "création de l'utilisateur"
else "création du fichier de log"
cs_yuna02
Messages postés3Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention 4 septembre 2006 4 sept. 2006 à 09:10
Bonjour ,
ton script est sympa, j'ai fais la meme chose mais a partir d'un fichier texte.
J'aimerai tester l'existence d'un user dans l'active directory mais je ne comprends pas comment tu fais.
Merci de me repondre
4 juin 2010 à 11:21
30 juin 2007 à 10:08
Car on ne peut pas partager le répertoire à distance (du moins je ne suis vraiment pas sur que cela soit possible)
Sinon pour strHomeFolder effectivement dans mon script original j'ai utilisé cette entrée dans le fichier excel, donc si tu ne le rajout pas il ne sert à rien.
Voilà bonne chance et bon script
13 juin 2007 à 10:58
Je rencontre des problèmes pour la création du share. N'y a t'il pas une erreur dans:
objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "" & Mystr & " /unlimited"
on crée bien le share sur une machine distante? ou le script est exécuté sur la meme machine?
j'ai également remarqué que strHomeFolder n'était utilisé nul part!?
Je débute dans les scripts, donc peut-être que des détails m'ont échapés...
Merci de m'éclaircir!
18 avril 2007 à 23:28
Dans ma réponse à DANY93, je ne génère plus le SAMACCOUNTNAME il faut qu'il soit dans votre fichier excel ....
18 avril 2007 à 23:22
La boucle de création des utilisateurs commence au premier ""Do Until ObjExcel.cells"" et fini a la dernière ""loop"" après le ""int roow = introow +1""
Sinon pour ta boucle as tu vérifier qu'il n'y avait pas de remarque devant une de ces 2 commandes ?
Autre, as-tu bien les champs demandés (nom, prénom, bureau, etc?. ) dans le cas ou tu n'es pas sur tu peux vérifier en ajoutant des remarques sur les optionnels, pour ne garder que les noms, prénoms, mdp
Comme je l'ai signalé ce script à été fait pour un besoin identifié. Puis je l'ai rapidement amélioré pour le poster (afin qu'il y ai des commentaires et qu'il soit plus compréhensif) toutefois il ne comprends pas de vérification des champs vides.
En revanche si tu remplaces la partie création de l'utilisateur, par quelque chose comme ça :(tu ne devrais plus avoir de PB)
'____________________________________________________________
' debut de la boucle
'____________________________________________________________
Do Until objExcel.Cells(intRow,1).Value = ""
'____________________________________________________________
' Creation de l'utilisateur
'____________________________________________________________
IntUserldap = Trim(objExcel.Cells(intRow, 1).Value)
IntOU = Trim(objExcel.Cells(intRow, 2).Value)
IntGivenName = Trim(objExcel.Cells(intRow, 3).Value)
Intinitials = Trim(objExcel.Cells(intRow, 4).Value)
Intsn= Trim(objExcel.Cells(intRow, 5).Value)
IntdisplayName = Trim(objExcel.Cells(intRow, 6).Value)
IntuserPrincipalName = Trim(objExcel.Cells(intRow, 7).Value)
IntSamaccountName = Trim(objExcel.Cells(intRow, 8).Value)
Intmail = Trim(objExcel.Cells(intRow, 9).Value)
IntOfficeName = Trim(objExcel.Cells(intRow, 10).Value)
InttelephoneNumber = Trim(objExcel.Cells(intRow, 11).Value)
IntADDescript = Trim(objExcel.Cells(intRow, 12).Value)
IntADMDP = "LeMotDePasse"
Intlogonscript = "leNomDuscriptDelogon"
Set objOU = GetObject("LDAP://" & IntOU )
Set objUser = objOU.Create("User", IntUserldap)
If IntUserldap <>"" then
' msgbox "le champ est :" & IntUserldap
objUser.Put "distinguishedname", IntUserldap
else
msgbox "le champ 1 du fichier excel ne doit pas être vide" & IntGivenName, IntOU, IntSamaccountName
End if
If IntSamaccountName <>"" then
' msgbox "Le champ est :" & IntSamaccountName
objUser.Put "SamaccountName", IntSamaccountName
else
msgbox "le champ 8 du fichier excel ne doit pas être vide" & IntGivenName, IntOU
End if
objUser.SetInfo
' Activation du compte / forcer le changement du MDP /
objUser.SetPassword IntADMDP
objUser.Put "pwdLastSet", -1
objUser.AccountDisabled = FALSE
objUser.SetInfo
If userPrincipalName <>"" then
objUser.put "userPrincipalName", IntuserPrincipalName
else
End if
If IntGivenName <>"" then
objUser.Put "givenName", IntGivenName
else
End if
' objUser.SetInfo
If Intsn <>"" then
objUser.Put "sn", Intsn
else
End if
If IntdisplayName <>"" then
objUser.Put "displayName", IntdisplayName
else
End if
If IntADDescript <>"" then
objUser.put "Description", IntADDescript
Else
End if
If IntOfficeName <>"" then
objUser.Put "physicalDeliveryOfficeName", IntOfficeName
Else
End if
If Intinitials <>"" then
objUser.Put "initials", Intinitials
Else
End if
If InttelephoneNumber <>"" then
objUser.Put "telephoneNumber", InttelephoneNumber
Else
End if
If Intmail <>"" then
objUser.Put "mail", Intmail
Else
End if
objUser.SetInfo
intRow = intRow + 1
5 déc. 2006 à 18:32
Excellent ton script
Toutefois je ne vois pas ou se fait la boucle, il me créer un utilisateur et s'arrête me disant creation utilisateur terminé. Et me creer toujours le même utilisateur, et ceci quelque soit la ligne à laquelle commence mes utilisateurs sur le fichier excel.
Merci pour ce script
27 nov. 2006 à 20:06
Désolé pour le retard mais je n'ai pas regardé mon poste depuis longtemps. Si toutefois tu cherches encore la réponse. Pour tester si l'utilisateur existe je recherche son samaccountname existe en fonction de celui que je veux créer. Avec un simple
Une fois le GetObject fait.
If objUser.samaccountname <> Mystr Then "création de l'utilisateur"
else "création du fichier de log"
4 sept. 2006 à 09:10
ton script est sympa, j'ai fais la meme chose mais a partir d'un fichier texte.
J'aimerai tester l'existence d'un user dans l'active directory mais je ne comprends pas comment tu fais.
Merci de me repondre