IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Bloqué dans mon vb script


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Bloqué dans mon vb script
    Bonjour,

    J'ai réalisé un script pour ajouter des utilisateurs dans une base Active Directory. Une fois les infos rentrées avec des "inputbox" les utilisateurs ont bien leurs comptes créés ainsi qu'un dossier à leur nom avec les droits qui vont bien dessus.Jusqu'ici tout va bien.
    Là ou je coince c'est lorsque je veux rentrer un utilisateur qui a le même nom et la même première lettre du prénom. En effet il me dit que l'objet existe déjà.
    Je voudrais donc réaliser une boucle qui soit ajouterait un chiffre à la fin soit qui rajouterait la lettre suivante du prénom jusqu'à qu'il n'y ai plus de lettres en commun.

    J'espère mon explication est a peu près claire.
    J'ai retourné tout google pour trouver une solution mais y'a quasiment rien sur ce problème...

    D'avance merci pour vos réponses.
    Cordialement.
    Zed

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Tu peu peu-être rajouter une gestion d'erreur à ta création et changer de nom en cas d'erreur...

    on peu voir ton code de création ..?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Voici mon code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    'Déclaration des variables
     
    DIM nom,prenom,ou,caractere,login
     
    do while nom="" or prenom="" 
       nom = InputBox("Entrez un nom ","Nom")
       prenom = InputBox("Entrez un prénom ","Prenom")
       ou = InputBox("Dans quel Unité d'organisation voulez vous mettre l'utilisateur ?","Unite d'organisation")
     
    loop
     
    compteur = 1
     
    'caractere = Left(prenom,1)   
    login = Left(prenom, compteur) + (nom)
     
     
    'Détermine le chemin LDAP du domaine
     
     
    Set Root = GetObject("LDAP://RootDSE")
    DomainPath = Root.Get("DefaultNamingContext")
     
     
    'Indique le chemin ou créer l'utilisateur
     
    Set chemin = GetObject("LDAP://OU="&ou &","& domainpath)
     
     
    ' Créé l'utilisateur dans l'OU
     
     
     
    Set oUser = chemin.Create("user", "CN=" & prenom&" "&nom)
     
     
     oUser.Put "SamAccountName",  login
     oUser.Put "userPrincipalName", login
     oUser.Put "displayName", prenom&" "&nom
     oUser.Put "mail", prenom & "." & nom &"@termier"
     
     
     oUser.sn = nom
     oUser.GivenName = prenom
     oUser.homeDirectory = "\\BigBoss\Perso\"& prenom &" "& nom &""    
     oUser.homeDrive = "J:"
     oUser.scriptPath = "service"
     oUser.SetInfo
     
     
    wscript.echo "Utilisateur créé"
     
    if oUser.AccountDisabled = TRUE then
       WScript.Echo "Le compte de " & prenom &" "& nom &" est actuellement désactivé"
       WScript.Echo "Le compte de " & prenom &" "& nom &" va être activé"
     
       if strDisableAccount = FALSE then
          oUser.AccountDisabled = strDisableAccount
          oUser.SetInfo
          WScript.Echo "Le compte est maintenant activé"
       end if
     
    end if
     
    wscript.echo "Le dossier de " & prenom &" "& nom &" va être créé"
     
    'Création dossier utilisateur
     
    Dim fso, f
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.CreateFolder("\\BigBoss\Perso\" & prenom &" "& nom & "")
     
    'Gestion des droits
     
    Set wShell = CreateObject("wscript.shell")
     
    lignedecommande ="Cacls ""C:\Perso\" & prenom &" "& nom & """ /T /C /P " & login & ":C Administrateurs:F"
     
    wShell.run lignedecommande
    Je pensais plutot à un if dans une boucle genre if "login n'existe pas" création de celui-ci sinon ajout d'une lettre supplémentaire du prénom.

    Cordialement

  4. #4
    Membre confirmé Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Points : 582
    Points
    582
    Par défaut
    Bonjour.

    Selon moi, tu devrais créer (ou trouver) une fonction UserExists(strUser) qui testerait l'existence de ton utilisateur dans ton AD.

    Ensuite il te suffit de faire lors de l'attribution du login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    compteur = 1
    login = Left(prenom, compteur) + (nom)
    Do While UserExists(login) & Len(login) < Len(prenom & nom)
      compteur = compteur + 1
      login = Left(prenom, compteur) + (nom)
    Loop
    If UserExists(login) Then WScript.Echo "Trop de doublons!"
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    compteur = 1
    login = Left(prenom, compteur) + (nom)
    Do While UserExists(login) & Len(login) < Len(prenom & nom)
      compteur = compteur + 1
      login = Left(prenom, compteur) + (nom) & CStr(compteur)
    Loop

Discussions similaires

  1. P'tit probleme de creation de formulaire dans mon script
    Par Jim_Nastiq dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2006, 16h40
  2. Réponses: 9
    Dernier message: 21/02/2006, 14h14
  3. [MySQL] Problème dans mon script de pagination
    Par speedylol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/11/2005, 19h37
  4. erreur dans mon script
    Par Swata dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 00h02
  5. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo