Chivé972
Newbiiiie
Sexe:
Messages: 3
Localisation: Lieusaint
|
Posté le:
Mar 27 Mar 2012 - 11:59 |
|
Bonjour tout le monde,
suite à de nombreuses recherches infructueuses sur le net, je n'ai pas réussi à trouver le moyen de pouvoir checker une valeur d'UO ou de groupe donné par l'utilisateur lors d'une requête.
Pour mieux comprendre mon problème voici mon script de base:
'========================================================================
' Script de création de comptes utilisateurs dans le conteneur "Users" a partir d'un fichier Excel
'========================================================================
'========================================================================
' Déclaration des variables
'========================================================================
Dim excel, objetSysteme, uniteOrganisation, uniteGroupe, utilisateur, i
Dim login, login2, initiales, nom, prenom, bureau, messagerie, telbureau, liste, reponse, reponse2
liste = ""
'========================================================================
' Accès au fichier Excel contenant les données des utilisateurs a créer
'========================================================================
set excel = wscript.createobject("Excel.Application")
set objetSysteme = wscript.createobject("wscript.shell")
excel.visible = false
excel.workbooks.open(objetSysteme.currentdirectory & "\ComptesUtilisateurs.xlsx")
'========================================================================
' Demande du script pour l'OU et le groupe à choisir
'========================================================================
reponse = InputBox ("Quel est l'unité d'organisation à utiliser?", "Demande d'information", "Utilisateurs")
if reponse= "" then
MsgBox "Vous avez annulé la procédure !"
WScript.Quit(0)
end if
reponse2 = InputBox ("Quel est le groupe d'utilisateurs à attribuer", "Demande d'information", "Utilisateurs Schneider")
if reponse2= "" then
MsgBox "Vous avez annulé la procédure !"
WScript.Quit(0)
end if
'========================================================================
' Boucle d'extraction des données Excel ligne par ligne
'========================================================================
i = 3
Do until excel.cells(i,1).value = ""
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Assignation de chaque colonne Excel dans une variable
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
login = excel.cells (i,1).value
initiales = excel.cells (i,2).value
nom = excel.cells(i,3).value
nom2 = excel.cells(i,3).value
prenom = excel.cells(i,4).value
prenom2 = excel.cells(i,4).value
bureau = excel.cells(i,5).value
messagerie = excel.cells(i,6).value
telbureau = excel.cells(i,7).value
login2 = nom2 & " " & prenom2
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Choix du conteneur d'Active Directory (Unité d'organisation)
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set uniteOrganisation = GetObject("LDAP://OU= " & reponse & ", dc=---, dc=---, dc=---, dc=---")
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Création de ou des utilisateurs et attribution des différentes informations liées au compte
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set utilisateur = uniteOrganisation.Create("user", "CN=" & Nom & " " & Prenom)
utilisateur.Put "UserPrincipalName", login
utilisateur.Put "initials", initiales
utilisateur.Put "sn", nom
utilisateur.Put "givenName", prenom
utilisateur.Put "Name", nom & " " & prenom
utilisateur.Put "displayName", Nom & " " & prenom
utilisateur.Put "physicalDeliveryOfficeName", bureau
utilisateur.Put "mail", messagerie
utilisateur.Put "telephoneNumber", telbureau
utilisateur.SetInfo
utilisateur.Put "pwdLastSet", 0
utilisateur.SetInfo
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Activation du compte
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utilisateur.AccountDisabled = FALSE
utilisateur.SetInfo
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Intégration de l'utilisateur dans un groupe défini
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set uniteGroupe = GetObject("LDAP://cn=" & reponse2 & ", OU= " & reponse & ", dc=---, dc=---, dc=---, dc=---")
uniteGroupe.add "LDAP://CN=" & login2 & ", OU= " & reponse & ", dc=---, dc=---, dc=---, dc=---"
uniteGroupe.SetInfo
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Boucle
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
i = i+1
Loop
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Message de confirmation
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MsgBox "Les utilisateurs ont été créés avec succès !", vbOKOnly, "Confirmation"
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Fermeture du processus Excel
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
excel.quit
WScript.Quit(0)
Ce script me permet de créer une liste d'utilisateurs à partir d'une feuille excel et fonctionne parfaitement.
Le partie du code qui me pose problème est en gras: je cherche le moyen de pouvoir rechercher dans l'AD la valeur rentrée par l'utilisateur.
Pour cela, j'aimerai que l'utilisateur rentre une valeur, clique sur OK pour qu'ensuite deux choix s'impose:
- la valeur recherchée est OK est le script passe à la suite
- la valeur recherchée est incorrecte et un message d'erreur s'affiche " l'UO/le groupe que vous avez rentré n'existe pas ".
L'utilisateur clique sur OK et revient à la fenêtre de demande précédemment affichée.
Merci d'avance pour vos réponses |
|
|