[RESOLU] PB script de creation d'utilisateur

PB script de creation d'utilisateur [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 09-09-2005 à 10:58:15    

Bonjour,  
 
Je suis actuellement en stage et l'on me demande d'ecrire un VBS de cretion de compte sous AD.  
Apres avoir chercher sur le forum j'ai fait un premier jet qui ne fonctionne pas et je n'arrive pas à voir pourquoi.  
 
Un peu d'aide serait la bienvenue, je mets le script:
 
 
' Déclarations des variables et des objets
 
Dim dse,domain,ParentOU
Dim NewUser,Utilisateur,Prenom,Nom,Site,Service,Expiration,OU
 
Set dse =GetObject("LDAP://RootDSE" )
Set domain = GetObject("LDAP://" & dse.Get("defaultNamingContext" ))
 
 
' Création d'utilisateurs dans l'OU concernée
 
Do  
   If msgbox("Voulez vous créer un nouvel utilisateur", VbInformation + VbYesNo, "Message" ) = VbYes then  
      OU = inputbox("Veuillez saisir l'OU dans laquelle vous voulez créer l'utilisateur!" )  
      Set objDomain = GetObject("LDAP://DC=win-master,DC=hsa,DC=snecma" )    
      set ParentOU = objDomain.GetObject("organizationalUnit", "OU=" & OU)
      ParentOu.SetInfo      
      Utilisateur = InputBox("Veuillez entrer le matricule de l'utilisateur:" )  
      Set NewUser = ParentOU.create("user", "CN=" & Utilisateur)  
      Nom = InputBox("Nom de l'utilisateur:" )  
      Prenom = InputBox("Prénom de l'utilisateur:" )  
      Site = InputBox("Lieu de travail de l'utilisateur:" )  
      Service = InputBox("Service de l'utilisateur:" )  
      Expiration = InputBox("Donnez la date d'expiration du compte (format aaaa/mm/jj):" )  
      samAccountName = Utilisateur
      NewUser.Put "cn", Utilisateur  
      NewUser.Put "GivenName",Prenom  
      NewUser.Put "sn", Nom  
      NewUser.Put "name", Utilisateur  
      NewUser.Put "physicalDeliveryofficeName", Site  
      NewUser.Put "department", Service  
      NewUser.Put "samAccountName", Utilisateur  
      NewUser.Put "userPrincipalName", Utilisateur &"@win-master.hsa.snecma"  
      NewUser.Put "DN","cn=" & Utilisateur &",DC=win-master,DC=hsa,DC=snecma"  
      NewUser.Put "Accountexpires", Expiration  
Ligne 37    NewUser.SetInfo  
      NewUser.setpassword "utilisateur"  
      Newuser.accountdisabled = FALSE  
      NewUser.SetInfo  
      NewUser.Put"pwdLastSet",0  
      NewUser.SetInfo  
      msgbox "L'utilisateur " & Utilisateur& " a bien été crée !", VbInformation,"Création d'utilisateur"  
   Else  
               Wscript.quit(0)  
        End if  
     
Loop Until msgbox("Voulez vous créer un nouvel utilisateur", VbInformation + VbYesNo, "Message" ) = VbNo  
Wscript.quit(0)  
 
 
Il me ressort une erreur à la ligne 37 au premier Newuser.SetInfo
erreur: l'attribut ou la valeur de service d'annuaire spécifié n'existe pas.  
Ca veux dire quoi ?  
 
Merci d'avance


Message édité par blacksun2 le 15-09-2005 à 10:38:30
Reply

Marsh Posté le 09-09-2005 à 10:58:15   

Reply

Marsh Posté le 09-09-2005 à 21:35:53    

Pas facile à lire au premier regard.
Personnellement je n'utiliserai pas autant d'input box, sinon autant passer par l'interface graphique.
Je te conseille d'utiliser un fichier excel ( ou texte ) en source, cela permet un traitement par lot.
( consulter le script center, j'ai créé tous mes scripts de creation de groupes globaux, locaux, users, propriétés, quotas ... avec cela ) . 1005 comptes en 7 min 34 s  ce matin !.  
 
J'utilise le code suivant qui me semble plus simple
 
 
   '===========================================================================
   'création d'un utilisateur  
    set objOU   = GetObject("LDAP://ou= utilisateurs,DC=mondomaineamoi,DC=fr" )
    set objUser = objOU.Create("user", "CN=" & username)
    objUser.Put "samAccountName", username
...
...
 
 
    'It is recommended to flush the cash before dealing with the password and account attributes:
    objUser.SetInfo
 
    ' Setting a User’s Password
    ' Description
    ' Configures a new password for a user.
    objUser.SetPassword password
 
    ' Enabling a User Account
    ' Description
    ' Enables a user account.
    objUser.AccountDisabled = FALSE
    objUser.SetInfo
 
    ' Ensuring that an Account will not Expire
    ' Description : configures a user account so that it will not expire.
    '               This is done by setting the expiration date to 1/1/1970.
 
    objUser.AccountExpirationDate = "01/01/1970"
    objUser.SetInfo
 
 
'===========================================================================
' variable pour Setting a Password So It Never Expires
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
 
    ' Setting a Password So It Never Expires
    ' Description
    ' Configures the domain password for a user account to ensure that the password will never expire.
    intUAC = objUser.Get("userAccountControl" )
    objUser.Put "userAccountControl", intUAC XOR ADS_UF_DONT_EXPIRE_PASSWD
    objUser.SetInfo

 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed