begin process at 2012 02 17 09:05:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBScript

 > CRÉATION D'UTILISATEURS AD VIA EXCEL AVEC RAPORT DES CRÉATIONS ET DES ERREURS.

CRÉATION D'UTILISATEURS AD VIA EXCEL AVEC RAPORT DES CRÉATIONS ET DES ERREURS.


 Information sur la source

Note :
Aucune note
Catégorie :VBScript Classé sous :ad, creationutilisateurs, vbscript, excel Niveau :Débutant Date de création :04/07/2006 Date de mise à jour :04/07/2006 13:50:24 Vu :14 101

Auteur : DFORLER

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Création d'utilisateurs dans l' Active Directory depuis un fichier Excel avec rapport des créations et des Erreurs.
Création automatique de son répertoire perso et partage de celui-ci. Création d'un fichier log sous format .Html pour la description du compte et de ces caractéristiques.

Voila, je dépose ce petit bout de code car ayant du créer une grande quantité de comptes sur mon AD j'avais besoin d'un script qui face les choses les plus importantes en automatique. Je ne suis qu'un novice en matière de script mais je pense qu'il ait plutôt complet (de par le contrôle d'erreur et de la génération du log) pour pouvoir être utilisé.
J'espère qu'il vous aidera à automatiser des créations utilisateurs. Car c'est ma petite contribution aux nombreux codes que j'ai le plaisir d'utiliser ou adapter à mes situations depuis que j'utilise Vbfrance

Source

  • '============================================================================
  • ' Script pour L'ajout d'utilisateurs sur un domaine AD
  • ' Avec creation du répertoire perso
  • ' par DF
  • '============================================================================
  • on error resume next
  • '____________________________________________________________
  • ' Recuperation des utilisateurs depuis un fichiers .xls
  • '____________________________________________________________
  • Dim objExcel, objSpread, intRow
  • strSheet = "d:\SourceFichier.xls"
  • Set objExcel = CreateObject("Excel.Application")
  • Set objSpread = objExcel.Workbooks.Open(strSheet)
  • intRow = 2 'Row 1 often contains headings
  • '____________________________________________________________
  • ' debut de la boucle
  • '____________________________________________________________
  • Do Until objExcel.Cells(intRow,1).Value = ""
  • '____________________________________________________________
  • ' Creation de l'utilisateur
  • '____________________________________________________________
  • IntADUserName = Trim(objExcel.Cells(intRow, 1).Value)
  • '("Recupere le prenom de l'utilisateur a creer Exemple: Toto")
  • IntADSurname = Trim(objExcel.Cells(intRow, 2).Value)
  • '("Recupere le nom de l'utilisateur a creer Exemple: Dupon")
  • IntADDescript = Trim(objExcel.Cells(intRow, 3).Value)
  • '("Recupere La fonction de l'utilisateur Exemple: Hote d'accueil")
  • IntADOffice = Trim(objExcel.Cells(intRow, 4).Value)
  • '("Recupere description fonction")
  • IntADMail = Trim(objExcel.Cells(intRow, 5).Value)
  • '("Recupere le Mail")
  • IntADPhone = Trim(objExcel.Cells(intRow, 6).Value)
  • '("Recupere le phone")
  • IntOfficeOu= Trim(objExcel.Cells(intRow, 7).Value)
  • '("Recupere l'OU de destination")
  • IntADMDP = "Mdp00++"
  • '("Renseigner le mot de passe d'utilisateur Exemple: User00++")
  • intlogonscript = "netlogon.cmd"
  • '("Renseigner le logon script")
  • intdomain = "Votre Domaine"
  • '("Renseigner le nom du domaine")
  • intsharedrive = "d:\users"
  • '("Renseigner le partage utilisateur")
  • IntReplog = "d:\replog"
  • '("Renseigner le repertoire pour les logs de creation utilisateurs, Attention le repertoire doit etre cree par avance")
  • Dim AnyString, MyStr , AnyString1, IntADUserInit, objUserVerif, termine
  • AnyString = IntADUserName ' 1er string.
  • AnyString1 = IntADSurname ' 2eme string.
  • compteur = 1
  • termine = 0
  • do while termine = 0
  • set objuser = nothing
  • MyStr = Left(trim(AnyString), compteur ) + trim (IntADSurname)
  • '("Retourne la premiere lettre du prenom plus le nom complet dans le cas d'un doublon
  • 'il rajoutera les lettres suivantes jusqu a ne plus avoir de doublon.")
  • IntADUserInit = Left(AnyString, 1 ) + Left(AnyString1, 1 )
  • '("Retourne les initials Prenom+nom")
  • '("Attention vous devez modifier l'arborescent du domaine si dessous.dc=VOTREDOMAINE,dc=VOTRE extention ")
  • Set objUser = GetObject("LDAP://cn="& Mystr &",ou="& IntOfficeOu &",dc=VOTREDOMAINE,dc=VOTRE extention")
  • If objUser.samaccountname <> Mystr Then
  • '("Verification de l existance du compte dans la meme OU, renvoi a la boucle compteur du else")
  • Set objOU = GetObject("LDAP://ou="& IntOfficeOu &",dc=VOTREDOMAINE,dc=VOTRE extention")
  • '("Definition de l'OU pour la creation du compte")
  • Set objUser = objOU.Create("User", "cn=" & Mystr )
  • '("Creation de l'user avec le login realise plus haut")
  • objUser.Put "givenName", intADUserName
  • objUser.Put "initials", IntADUserInit
  • objUser.Put "sn", intADSurname
  • objUser.Put "displayName", IntADUserName & " " & IntADSurName
  • objUser.put "Description", IntADDescript
  • ' objUser.Put "physicalDeliveryOfficeName", IntOfficeOu
  • objUser.Put "telephoneNumber", IntADPhone
  • objUser.Put "mail", IntADMail
  • objUser.put "userPrincipalName", Mystr
  • objUser.Put "SamaccountName", Mystr
  • objUser.Put "ScriptPath", intlogonscript
  • objUser.SetInfo
  • if errorlevel <> 0 then
  • '("verification de la creation de l'utilisateur et creation d un log error en cas de probleme")
  • msgbox "creation impossible pour " & Mystr
  • Set fso1 = CreateObject("Scripting.FileSystemObject")
  • if fso1.fileexists("" & IntReplog &""& IntADUserName &"" & IntADSurName &".error") _
  • & then fso1.delete ("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".error")
  • Set MyFile = fso.CreateTextFile("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".error", True)
  • MyFile.Close
  • end if
  • ' Activation du compte / forcer le changement du MDP /
  • objUser.SetPassword IntADMDP '("Definir le MDP")
  • objUser.Put "pwdLastSet", 0 '("Forcer le changement du MDP")
  • objUser.AccountDisabled = FALSE '("active le compte ....")
  • objUser.SetInfo
  • termine = 1
  • else
  • compteur = compteur + 1
  • Msgbox " un doublon existe " & Mystr & ""
  • end if
  • loop
  • '____________________________________________________________
  • ' Creation d'un fichier logs
  • '____________________________________________________________
  • Dim fso, MyFile
  • Set fso = CreateObject("Scripting.FileSystemObject")
  • if fso.fileexists("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm") then fso.delete ("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm")
  • Set MyFile = fso.CreateTextFile("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm", True)
  • MyFile.WriteLine("<body><html><TITLE>Page retour de la cr¨¦ation d'un client</TITLE><center><br></center><br><font face=Arial size=4 color=#000066><B> Vos nom et prénom sont : <align=center>" & IntADUserName & " , " & IntADSurname _
  • &"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre nom de connexion au domaine : "& intdomain &"; est : <align=center>" & Mystr _
  • &"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre mot de passe : <align=center>" & IntADMDP _
  • &"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre Adresse mail est : <align=center>" & intADMail & " " _
  • &"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> votre numero de téléphone est :" & IntADPhone & "<align=center>"_
  • &"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre répertoire personnel est S:\" & MyStr & " , depuis votre poste de travail <align=center>"_
  • &"</B></font><BR><BR></p><font face=Arial size=5 color=#FF6666><B> Attention !!! Vous devrez changer votre mot de passe personnel a la première connexion sur le domaine <align=center>" _
  • &"</B></font><BR><BR></p><font face=Arial size=5 color=#FF6666><B> Cordialement votre service Informatique <align=center>" _
  • & " </B></font><BR><BR></p></body></html>")
  • MyFile.Close
  • '____________________________________________________________
  • ' Connexion du lecteur reseau
  • '____________________________________________________________
  • Dim objShell, objNetwork
  • Dim DriveLetter1, DriveLetter2, RemotePath1, RemotePath2
  • Dim AllDrives, AlreadyConnected, Network1, Network2, i
  • Set Network1 = CreateObject("WScript.Network")
  • DriveLetter1 = "H:" ' This letter must be in CAPITALS.
  • RemotePath1 = "\\VotreServeur\LesrepertoirePerso"
  • '("Renseigner le repertoire perso")
  • Set objShell = CreateObject("WScript.Shell")
  • Set objNetwork = CreateObject("WScript.Network")
  • Set AllDrives = objNetwork.EnumNetworkDrives()
  • AlreadyConnected = False
  • For i = 0 To AllDrives.Count - 1 Step 2
  • If AllDrives.Item(i) = DriveLetter1 Then AlreadyConnected = True
  • Next
  • If AlreadyConnected = True then
  • objNetwork.RemoveNetworkDrive DriveLetter1
  • objNetwork.MapNetworkDrive DriveLetter1, RemotePath1
  • Else
  • objNetwork.MapNetworkDrive DriveLetter1, RemotePath1
  • End if
  • '____________________________________________________________
  • ' Creation du repetoire perso et creation du partage de celui ci
  • '____________________________________________________________
  • Dim objFSO, objFolder, strDirectory
  • strDirectory = "H:\"
  • Set objFSO = CreateObject("Scripting.FileSystemObject")
  • If objFSO.FolderExists(strHomeFolder) Then
  • Set objShell1 = CreateObject("WScript.Shell")
  • objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "\" & Mystr & " /unlimited"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /P administrators:F"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /G " & intdomain & "\" & Mystr & ":C"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /R everyone"
  • else
  • set objFolder = objFSO.CreateFolder(strDirectory & mystr)
  • Set objShell1 = CreateObject("WScript.Shell")
  • objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "\" & Mystr & " /unlimited"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /P administrators:F"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /G " & intdomain & "\" & Mystr & ":C"
  • objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /R everyone"
  • end if
  • '____________________________________________________________
  • ' Retour de la boucle sur la creation du repertorie perso
  • '____________________________________________________________
  • intRow = intRow + 1
  • Loop
  • msgbox "creation des utilisateurs terminee"
  • objExcel.Quit
  • set objexcel=nothing
  • WScript.Quit
'============================================================================
'		Script pour L'ajout d'utilisateurs sur un domaine AD 
'			Avec creation du répertoire perso
'					par DF
'============================================================================
  on error resume next

'____________________________________________________________
' Recuperation des utilisateurs depuis un fichiers .xls
'____________________________________________________________

Dim objExcel, objSpread, intRow

strSheet = "d:\SourceFichier.xls"

Set objExcel = CreateObject("Excel.Application")
Set objSpread = objExcel.Workbooks.Open(strSheet)
intRow = 2 'Row 1 often contains headings


'____________________________________________________________
' debut de la boucle
'____________________________________________________________
Do Until objExcel.Cells(intRow,1).Value = ""

'____________________________________________________________
' Creation de l'utilisateur
'____________________________________________________________

IntADUserName = Trim(objExcel.Cells(intRow, 1).Value)			
	'("Recupere le prenom de l'utilisateur a creer	Exemple: Toto")
IntADSurname = Trim(objExcel.Cells(intRow, 2).Value)			
	'("Recupere le nom de l'utilisateur a creer	Exemple: Dupon")
IntADDescript = Trim(objExcel.Cells(intRow, 3).Value)			
	'("Recupere La fonction de l'utilisateur        Exemple: Hote d'accueil")
IntADOffice = Trim(objExcel.Cells(intRow, 4).Value)				
	'("Recupere description fonction")
IntADMail = Trim(objExcel.Cells(intRow, 5).Value)				
	'("Recupere le Mail")
IntADPhone = Trim(objExcel.Cells(intRow, 6).Value)				
	'("Recupere le phone")
IntOfficeOu= Trim(objExcel.Cells(intRow, 7).Value)				
	'("Recupere l'OU de destination")
IntADMDP = "Mdp00++"											
	'("Renseigner le mot de passe d'utilisateur	Exemple: User00++")
intlogonscript = "netlogon.cmd"									
	'("Renseigner le logon script")
intdomain = "Votre Domaine"										
	'("Renseigner le nom du domaine")
intsharedrive = "d:\users"										
	'("Renseigner le partage utilisateur")
IntReplog = "d:\replog"											
	'("Renseigner le repertoire pour les logs de creation utilisateurs, Attention le repertoire doit etre cree par avance")


Dim AnyString, MyStr , AnyString1, IntADUserInit, objUserVerif, termine
	AnyString  = IntADUserName      									' 1er string.
	AnyString1 = IntADSurname      										' 2eme string.
	
compteur = 1	
termine = 0
do while termine = 0

	set objuser = nothing
	MyStr = Left(trim(AnyString), compteur ) + trim (IntADSurname)  							
	'("Retourne la premiere lettre du prenom plus le nom complet dans le cas d'un doublon 
        'il rajoutera les lettres suivantes jusqu a ne plus avoir de doublon.")
	IntADUserInit = Left(AnyString, 1 ) + Left(AnyString1, 1 )									
	'("Retourne les initials Prenom+nom")

'("Attention vous devez modifier l'arborescent du domaine si dessous.dc=VOTREDOMAINE,dc=VOTRE extention ") 	
	Set objUser = GetObject("LDAP://cn="& Mystr &",ou="& IntOfficeOu &",dc=VOTREDOMAINE,dc=VOTRE extention")

	If objUser.samaccountname <> Mystr Then	
'("Verification de l existance du compte dans la meme OU, renvoi a la boucle compteur du else")
		Set objOU = GetObject("LDAP://ou="& IntOfficeOu &",dc=VOTREDOMAINE,dc=VOTRE extention")	
'("Definition de l'OU pour la creation du compte")
		Set objUser = objOU.Create("User", "cn=" & Mystr )										
'("Creation de l'user avec le login realise plus haut")

			objUser.Put "givenName", intADUserName
			objUser.Put "initials", IntADUserInit
			objUser.Put "sn", intADSurname
			objUser.Put "displayName", IntADUserName & " "	& IntADSurName
			objUser.put "Description", IntADDescript
'			objUser.Put "physicalDeliveryOfficeName", IntOfficeOu 
			objUser.Put "telephoneNumber", IntADPhone
			objUser.Put "mail", IntADMail
			objUser.put "userPrincipalName", Mystr
			objUser.Put "SamaccountName", Mystr	
			objUser.Put "ScriptPath", intlogonscript
		objUser.SetInfo
		if errorlevel <> 0 then 																
'("verification de la creation de l'utilisateur et creation d un log error en cas de probleme")
			msgbox "creation impossible pour " & Mystr
				Set fso1 = CreateObject("Scripting.FileSystemObject")
					if fso1.fileexists("" & IntReplog &""& IntADUserName &"" & IntADSurName &".error") _ 
						& then fso1.delete ("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".error")
					Set MyFile = fso.CreateTextFile("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".error", True)
				MyFile.Close		
		end if
						
'		Activation du compte / forcer le changement du MDP /

			objUser.SetPassword IntADMDP														'("Definir le MDP")
			objUser.Put "pwdLastSet", 0															'("Forcer le changement du MDP")
			objUser.AccountDisabled = FALSE														'("active le compte ....")
		objUser.SetInfo
		
		termine = 1

	else 
		compteur = compteur + 1
		Msgbox " un doublon existe " & Mystr & ""
	end if
loop

'____________________________________________________________
' Creation d'un fichier logs
'____________________________________________________________
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.fileexists("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm") then fso.delete ("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm")
Set MyFile = fso.CreateTextFile("" & IntReplog &"" & IntADUserName &" " & IntADSurName &".htm", True)
MyFile.WriteLine("<body><html><TITLE>Page retour de la cr¨¦ation d'un client</TITLE><center><br></center><br><font face=Arial size=4 color=#000066><B> Vos nom et prénom sont : <align=center>" & IntADUserName & " , " & IntADSurname _
	&"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre nom de connexion au domaine : "& intdomain &"; est : <align=center>" & Mystr _
	&"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre mot de passe  : <align=center>" & IntADMDP _
	&"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre Adresse mail est  : <align=center>" & intADMail & " " _
	&"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> votre numero de téléphone est :" & IntADPhone & "<align=center>"_
	&"</B></font><BR><BR></p><font face=Arial size=4 color=#000066><B> Votre répertoire personnel est S:\" & MyStr & " , depuis votre poste de travail <align=center>"_
	&"</B></font><BR><BR></p><font face=Arial size=5 color=#FF6666><B> Attention !!! Vous devrez changer votre mot de passe personnel a la première connexion sur le domaine <align=center>" _
	&"</B></font><BR><BR></p><font face=Arial size=5 color=#FF6666><B> Cordialement votre service Informatique <align=center>" _
		& " </B></font><BR><BR></p></body></html>")
MyFile.Close


'____________________________________________________________
' Connexion du lecteur reseau
'____________________________________________________________
Dim objShell, objNetwork
Dim DriveLetter1, DriveLetter2, RemotePath1, RemotePath2
Dim AllDrives, AlreadyConnected, Network1, Network2, i

Set Network1 = CreateObject("WScript.Network")

DriveLetter1 = "H:" ' This letter must be in CAPITALS.

RemotePath1 = "\\VotreServeur\LesrepertoirePerso" 												
'("Renseigner le repertoire perso")

Set objShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
Set AllDrives = objNetwork.EnumNetworkDrives() 

AlreadyConnected = False
For i = 0 To AllDrives.Count - 1 Step 2
If AllDrives.Item(i) = DriveLetter1 Then AlreadyConnected = True
Next

If AlreadyConnected = True then
objNetwork.RemoveNetworkDrive DriveLetter1
objNetwork.MapNetworkDrive DriveLetter1, RemotePath1

Else

objNetwork.MapNetworkDrive DriveLetter1, RemotePath1

End if 


'____________________________________________________________
' Creation du repetoire perso et creation du partage de celui ci
'____________________________________________________________

Dim objFSO, objFolder, strDirectory
strDirectory = "H:\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strHomeFolder) Then

Set objShell1 = CreateObject("WScript.Shell")
objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "\" & Mystr & " /unlimited"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /P administrators:F"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /G " & intdomain & "\" & Mystr & ":C"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /R everyone"

else 
set objFolder = objFSO.CreateFolder(strDirectory & mystr)
Set objShell1 = CreateObject("WScript.Shell")
objShell1.Run "%COMSPEC% /C net share " & Mystr &"=" & intsharedrive & "\" & Mystr & " /unlimited"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /P administrators:F"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /G " & intdomain & "\" & Mystr & ":C"
objShell1.Run "%COMSPEC% /C cacls " & DriveLetter1 & "\" & Mystr & " /E /C /R everyone"

end if
'____________________________________________________________
' Retour de la boucle sur la creation du repertorie perso
'____________________________________________________________

intRow = intRow + 1
Loop
msgbox "creation des utilisateurs terminee"
objExcel.Quit
set objexcel=nothing
WScript.Quit 



 Historique

04 juillet 2006 13:27:28 :
Changement de la définition
04 juillet 2006 13:50:24 :
Changement de la définition suite

 Sources du même auteur

Source avec Zip EXPORT D'UTILISATEURS ACTIVE DIRECTORY DANS UN FICHIER EXCEL

 Sources de la même categorie

Source avec Zip Source avec une capture RECHERCHE & SAUVEGARDE DES FICHIERS PAR LEURS EXTENSIONS par hackoo
Source avec Zip Source avec une capture [VBS] SPLASH SCREEN EN VBSCRIPT par hackoo
Source avec Zip Source avec une capture [VBS] GOOGLE EASTER EGGS par hackoo
Source avec Zip Source avec une capture FILE2COMPARE: COMPARAISON DE DEUX FICHIERS LIGNE PAR LIGNE par hackoo
Source avec Zip Source avec une capture [VBS] COMMENT CRÉER UN DOSSIER ET LE PROTÉGER PAR MOT DE PAS... par hackoo

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture COLLECTION ID par Le Pivert
Source avec Zip PROTECTION VBAPROJECT par Le Pivert
[ACTIVE DIRECTORY] CRÉATION D'UNE UNITÉ ORGANISATIONNELLE + ... par FrancB

Commentaires et avis

Commentaire de yuna02 le 04/09/2006 09:10:00

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

Commentaire de DFORLER le 27/11/2006 20:06:54

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"

Commentaire de dany93 le 05/12/2006 18:32:34

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

Commentaire de DFORLER le 18/04/2007 23:22:14

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
'____________________________________________________________

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

Commentaire de DFORLER le 18/04/2007 23:28:44

----Attention----


Dans ma réponse à DANY93, je ne génère plus le SAMACCOUNTNAME il faut qu'il soit dans votre fichier  excel ....

Commentaire de floweb81 le 13/06/2007 10:58:07

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!

Commentaire de DFORLER le 30/06/2007 10:08:43

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

Commentaire de breil007 le 04/06/2010 11:21:35

bonjour, je suis intéressé par votre script, mais j'aimerais savoir comment créer mon fichier xls ?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

VBScript : Convertir une table access en fichier excel [ par FAW ] Salut,je souhaite troduire directement à partir de VBS une table Access en feuille Excel.Je cherche des exmples de codes,A vot'bon coeur!!!Faw vbscript [ par kobejul08 ] je sors une s&#233;lection d'excel en vbscript. par la function ExportSelectedToExcel.Seulement j'aimerais que chaque fois que j'ai sorti certaines do Stat graphic Excel en VBScript [ par n00bee ] Bjr tt le monde,Voilà, quelqu'un peut il me montrer un p'tit script en VB pour générer un graphe de stat pour Excel ou des exemples similaires ??!?Il vbscript : modification d'un fichier excel [ par mitsh666 ] Bonjour, J'ai un fichier excel dont le style est déjà configuré (taille colonnes, taille lignes, font, ...). Pour conserver ces paramètres, je veux l Excel - Blocage des raccourcis avec VB [ par jeannoellaya ] Bonjour,J'ai une petite question voir deux, J'ai une application tiers qui ouvre Excel en blocant certaines fonctions. Pour bloquer des raccorcis via VB.NET + Excel + vbscript [ par ghofrane ] Bonjour,je suis une étudiante débutante en vb.netj'ai à réaliser une interface en vb.net.et je veux que dans cette interface j'aurai des raccourcis cl VB.NET + Excel + vbscript [ par ghofrane ] Bonjour,je suis une débutante en VB. NET .je veux savoir si j'ai un fichier Excel comment je peux manipuler à l'intérieur d'un prog VB.NET pour tirer vbscript+excel [ par dghaine ] BonjourJ'ai cr&#233;er un script en vb qui copie et colle des donn&#233;es d'un fichier excel source vers un fichier excel cible qui g&#233;n&#233;re exporter des données d une BD géréé par MySQL avec VBScript sur Excel [ par dewaker ] DewakerBonjour a tous,...Voici mon probléme:je dois récupérer des informations, situées dans une base de donnée géré par MySQL, lien excel en vbscript [ par kobejul08 ] bonjour,je n'ai jamais fait de vbscript et je dois r&#233;aliser un lien vers un fichier excel.Donc d'un software je dois &#233;crire dans un fichier


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales