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 :

[vbs][active directory] Gestion des erreurs en cas de doublons à la création d'1 user


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [vbs][active directory] Gestion des erreurs en cas de doublons à la création d'1 user
    Bonjour,
    je voudrais savoir s'il existe une gestion d'erreur - qui soit paramétable - lors de la création d'un utilisateur dans Active Directory.

    je m'explique : j'ai un fichier ou sont remplis nom, prenom et autres champs divers. je créé un nouvel utilsateur à partir de ces champs, mais si cet utilisateur existe déjà, le programme sort avec le message "L'objet existe déjà"

    si mon programme rencontre déjà un objet identique, j'aimerais pouvoir le marquer dans un fichier de logs ou un msgbox.

    avez-vous une idée?
    ci-dessous, 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
    ' Fichier XLS :
    ' nom; prenom; new_login; serv_homedir
     
     
    liste="\\serveur\Scripts\Test\testmodifuser.xls"
    logfile="\\serveur\Scripts\Test\Logs\"
     
    ' ouverture du fichier Excel
    Set objShell = WScript.CreateObject("WScript.shell")
    Set objExcel = CreateObject("Excel.Application")
    Set objSpread = objExcel.Workbooks.Open(liste)
     
    ' OU concern‚e
    OU = "OU=OU_TEST, DC=fr"
     
     
    ' Boucle
     
    ligne = 2
     
    'Do Until objExcel.cells(ligne, 1).value=""
     
    	'Declaration variables depuis le fichier Excel
    	nom = Trim(objExcel.cells(ligne, 1).value)
    	prenom = Trim(objExcel.cells(ligne, 2).value)
    	ADLogin = Trim(objExcel.cells(ligne, 3).value)
    	ADHomeServ = Trim(objExcel.cells(ligne, 4).value)
     
    	'Variables annexes
    	ADInitials = Left(Trim(nom),1)+Left(Trim(prenom),1)
    	ADDisplayName =nom+", "+prenom+" "+ADInitials
    	ADCommonName = nom+"\, "+prenom+" "+ADInitials+"1"
    	ADHomeDrive = "P"	
    	ADHomedir = ADHomeServ+ADLogin+"$"
     
    	'Creation  de l'utilisateur dans AD avec les variables definies.
     
    	Set objOU = GetObject ("LDAP://"&OU&"")
    	Set objUser = objOU.Create("User", "cn="&ADCommonName&"")
     
    	objUser.put "givenName", prenom
    	objUser.put "sn", nom
    	objUser.put "initials", ADInitials
    	objUser.put "displayName", ADDisplayName
    	objUser.put "UserPrincipalName", ADLogin
    	objUser.put "SAMAccountName", ADLogin
    	objUser.put "description", "cree par script le "&Date&""
    	objUser.put "homedrive", ADHomeDrive
    	objUser.put "homedirectory", ADHomedir
     
    	objUser.setInfo
     
                 ' erreur a recuperer
                 if errorlevel <> 0 then msgbox "Existe deja"
     
     
    	' a suivre...	
    'Loop
     
    MsgBox "FIN"
    objExcel.Quit
    WScript.Quit
     
    '======================================================'
    '		FIN DU SCRIPT - FIN DU SCRIPT
    '======================================================'

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    j'ai modifié le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ' erreur a recuperer
                 if errorlevel <> 0 then msgbox "Existe deja"
    et je l'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ' au début du script : 
    On Error Resume Next
     
    ' ...
     
    If Error.nbr <> 0 Then 
                 Set fsoErr = CreateObject("Scripting.FileSystemObject")
    	Set LogErr = fsoLog.CreateTextFile(logDir&""&nom&"_"&prenom&".err", True)
    	LogErr.WriteLine("Date Operation : "&Date&" a "&Time& ".")
    	LogErr.WriteLine("Compte "&ADDisplayName&" existe deja")
    	LogErr.Close
    End If
    ca me créé bien un fichier .err lorsque l'utilisateur existe déjà dans l'AD, mais que à partir de mon 2e utilisateur ?? le premier, même s'il existe, passe au travers. Bizarre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    c'est bon, j'ai réussi. en cas d'utilisateur existant, mon fichier de logs m'indique bien que le compte existe déjà et ne peut le créer.

    pour ceux que ca peut interresser voici le 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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    'Détail du fichier XLS :
    ' nom; prenom; new_login; serv_homedir
     
    On Error Resume Next
     
    ' Nom du fichier source.
    liste="\\serveur\Scripts\Test\user.xls"
     
    ' Repertoire de logs
    logDir="\\serveur\Scripts\Test\Logs\"
     
    ' ouverture du fichier Excel
    Set objShell = WScript.CreateObject("WScript.shell")
    Set objExcel = CreateObject("Excel.Application")
    Set objSpread = objExcel.Workbooks.Open(liste)
     
    ' OU concern‚e
    OU = "OU=OU_TEST, DC=fr"
     
    ' Boucle
     
    ligne = 2
     
    Do Until objExcel.cells(ligne, 1).value=""
     
    	'Declaration variables depuis le fichier Excel
    	nom = Trim(objExcel.cells(ligne, 1).value)
    	prenom = Trim(objExcel.cells(ligne, 2).value)
    	ADLogin = Trim(objExcel.cells(ligne, 3).value)
    	ADHomeServ = Trim(objExcel.cells(ligne, 4).value)
     
    	'Variables annexes
    	ADInitials = Left(Trim(prenom),1)+Left(Trim(nom),1)
    	ADDisplayName =nom+", "+prenom+" "+ADInitials
    	ADCommonName = nom+"\, "+prenom+" "+ADInitials
    	ADHomeDrive = "P"
    	ADHomedir = ADHomeServ+ADLogin+"$"
     
     
     ' Creation dans l'AD
    	Set objOU = GetObject ("LDAP://"&OU&"")
    	Set objUser = objOU.Create("User", "cn="&ADCommonName&"")
     
    	objUser.put "givenName", prenom
    	objUser.put "sn", nom
    	objUser.put "initials", ADInitials
    	objUser.put "displayName", ADDisplayName
    	objUser.put "UserPrincipalName", ADLogin
    	objUser.put "SAMAccountName", ADLogin
    	objUser.put "description", "cree par script le "&Date&" "&Time&"."
    	objUser.put "homedrive", ADHomeDrive
    	objUser.put "homedirectory", ADHomedir
    	objUser.setInfo
     
                 'pour voir le code erreur
    	'MsgBox "Erreur num "&err.number
     
    	If err.number <> 0 Then 
    		Set fsoErr = CreateObject("Scripting.FileSystemObject")
    		Set LogErr = fsoErr.CreateTextFile(logDir&""&nom&"_"&prenom&".err", True)
    		LogErr.WriteLine("Date erreur : "&Date&" a "&Time& ".")
    		LogErr.WriteLine("Compte "&ADDisplayName&" existe deja")
    		LogErr.Close
     
    	Else
     
    		Set fsoLog = CreateObject("Scripting.FileSystemObject")
    		Set LogFile = fsoLog.CreateTextFile(logDir&""&nom&"_"&prenom&".log", True)
    		LogFile.WriteLine("Date Operation : "&Date&" a "&Time& ".")
    		LogFile.WriteLine("Compte "&ADDisplayName&" OK avec un login "&ADLogin&"")
    		LogFile.WriteLine("Share homedir : "&ADHomedir&".")
    		LogFile.Close
     
    		objUser.SetPassword "Password01"
    		objUser.Put "PwdLastSet", 0
    		objUser.AccountDisabled = False
    		objUser.setInfo
     
    	End If
     
    	err.number=0
    	ligne=ligne+1
    Loop
     
    MsgBox "FIN"
    objExcel.Quit
    WScript.Quit
     
    '======================================================'
    '	FIN DU SCRIPT - FIN DU SCRIPT	
    '======================================================'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion des erreurs BDD (intégrité et doublons)
    Par le baobab dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/10/2013, 17h40
  2. Réponses: 0
    Dernier message: 31/07/2011, 19h30
  3. [active directory] Gestion des PC clients
    Par m_jaz3 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 26/03/2007, 00h09
  4. [Active Directory]Gestion des groupes d'accès à un site web
    Par apoingsfermes dans le forum Accès aux données
    Réponses: 4
    Dernier message: 06/03/2007, 09h58
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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