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 :

Script pour ajouter / modifier Samaccountname et userprincipalname AD 2003


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 16
    Points
    16
    Par défaut Script pour ajouter / modifier Samaccountname et userprincipalname AD 2003
    Salut à tous,

    Je suis en train de faire un script (c'est mon premier, totalement débutant) afin d'ajouter voir de modifier à partir d'un fichier csv le samaccountname et le userprincipalname des comptes users dans l'AD 2003.
    Malheureusement j'obtiens le message d'erreur suivant :

    Ligne 34
    Caractère 1
    Indice en dehors de la plage: '[number: 1]'
    800A0009

    Voilà le script :

    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
    '## debut script###
     Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
     Set oContainer = GetObject("LDAP://dc=integration,dc=local")
     
     ConvertUsers(oContainer)
     ' Nettoyage de mémoire
     
     Set oContainer = Nothing
     
     WScript.Quit
     
     Sub ConvertUsers(oTopLevelContainer)
     Dim oObj
     
     For Each objUser in oTopLevelContainer
     
     Select Case objUser.Class
     
     Case "organizationalUnit" , "container"
     ConvertUsers(ObjUser)
     
     Case "user"
     dim fso, df1
     CSVFile = "c:\temp\adusers.csv"
     
     Set fso = CreateObject("Scripting.FileSystemObject")
     Set df1 = fso.OpenTextFile(CSVFile,ForReading,True)
     
     Do while Not df1.AtEndOfStream
     varLigne = df1.readline()
     
     Noms = split(varLigne,",")(0)
     samaccountname = split(varLigne,",")(1)
     userprincipalname = split(varLigne,",")(2)
     
     'msgbox ""& session
     'msgbox ""& CNUser
     
     If CNUser= objuser.cn Then
     
     msgbox "ok pour" &Noms
     'Set oobj = GetObject ("LDAP://cn=" & Noms & ",dc=integration,dc=local")
     
     objUser.Put "userprincipalname",""& userprincipalname
     objUser.Put "samaccountname",""& samaccountname
     
     objUser.setinfo
     End If
     Loop
     
     df1.close
     End select
     ' Va à la prochaine OU enfant
     Next
     End Sub
     
     '## fin script###

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    Salut

    Le message d'erreur semble explicite.
    Tu pourrais coder dans le même esprit que celui-ci, les MsgBoxs en moins
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Do While Not df1.AtEndOfStream
        varLigne = df1.readline()
        If UBound(Split(varLigne, ",")) < 2 Then
           MsgBox "contenu de varLigne: " & vbNewLine & varLigne
    		else
            MsgBox Split(varLigne, ",")(0) & vbNewLine & Split(varLigne, ",")(1) & vbNewLine & Split(varLigne, ",")(2)
       End If
        'Noms = Split(varLigne, ",")(0)
        '.............................
    Loop
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 16
    Points
    16
    Par défaut
    Il y aurait pas possibilité de modifier le script que j'ai ? J'ai tenté d'enlever les MsgBoxs mais toujours le même message.

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    J'ai tenté d'enlever les MsgBoxs mais toujours le même message

    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
    '## debut script###
     Const ForReading = 1, ForWriting = 2, ForAppending = 8
     
     Set oContainer = GetObject("LDAP://dc=integration,dc=local")
     ConvertUsers (oContainer)
     
     Set oContainer = Nothing ' Nettoyage de mémoire
     
     WScript.Quit
     
     Sub ConvertUsers(oTopLevelContainer)
        Dim oObj
     
        For Each objUser In oTopLevelContainer
     
            Select Case objUser.Class
     
                Case "organizationalUnit", "container"
                    ConvertUsers (objUser)
     
                Case "user"
                    Dim fso, df1
                    CSVFile = "c:\temp\adusers.csv"
     
                    Set fso = CreateObject("Scripting.FileSystemObject")
                    Set df1 = fso.OpenTextFile(CSVFile, ForReading, True)
     
                    Do While Not df1.AtEndOfStream
                        varLigne = df1.readline()
                        If UBound(Split(varLigne, ",")) < 2 Then                    '*** debut partie modifiée ***
                            MsgBox "contenu de varLigne: " & vbNewLine & varLigne   '*** partie modifiée *********
                            Else                                                    '*** partie modifiée *********
                            Noms = Split(varLigne, ",")(0)                          '*-- reprise de ton code *****
                            samaccountname = Split(varLigne, ",")(1)                '*---- mais inclut dans -----*
                            userprincipalname = Split(varLigne, ",")(2)             '*---- la condition If ------*
                            'msgbox ""& session
                            'msgbox ""& CNUser
     
                            If CNUser = objUser.cn Then
     
                                MsgBox "ok pour" & Noms
                                'Set oobj = GetObject ("LDAP://cn=" & Noms & ",dc=integration,dc=local")
     
                                objUser.Put "userprincipalname", "" & userprincipalname
                                objUser.Put "samaccountname", "" & samaccountname
     
                                objUser.setinfo
                            End If
                        End If                                                      '*** Fin partie modifiée *****
                    Loop
     
                    df1.Close
            End Select
        ' Va à la prochaine OU enfant
     Next
     End Sub
     
     '## fin script###
    Je ne te propose que de régler ton problème d'erreur, pour autant je ne sais pas trop bien se que fait ton code, il demanderait à être optimisé.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 16
    Points
    16
    Par défaut
    Merci encore pour ton aide. Malheureusement cela ne donne pas ce que je veux, snif. En fait ce script a pour but de modifier ou d'ajouter dans l'AD sous Windows 2003 les attributs samaccountname et userprincipalname de tous les comptes utilisateurs, mais j'ai l'impression que cela check uniquement sans modifier ou ajouter quoique ce soit.

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    Citation Envoyé par thematterneo Voir le message
    ....
    Malheureusement cela ne donne pas ce que je veux, snif.
    ....
    L'erreur est toujours là, que contient la ligne récupéré dans la variable varLigne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    Do While Not df1.AtEndOfStream
                        varLigne = df1.readline()
                        MsgBox "contenu de varLigne: " & vbNewLine & varLigne '------- ligne inséré ------ 
                        If UBound(Split(varLigne, ",")) < 2 Then                    '*** début partie modifiée ***
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Combien de fenêtre pour ajouter/modifier/supprimer?
    Par absot dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 26/02/2010, 09h28
  2. Réponses: 11
    Dernier message: 25/02/2010, 16h33
  3. Script pour ajouter un copyright
    Par jiojio dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2008, 14h56
  4. script pour ajouter des droits d'exécution aux scripts
    Par Chatbour dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/10/2007, 17h40
  5. script pour ajouter des utilisateurs postgres
    Par xopos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 16/08/2004, 10h49

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