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 :

recuperation de l'extenstionAttribute4 dans un fichier texte


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 75
    Par défaut recuperation de l'extenstionAttribute4 dans un fichier texte
    Bonjour,

    Ce que je veux faire est assez simple, je veux un script qui fouille une O.U déterminé, et pour les utilisateurs ayant un extensionAttribute4, je veux qu'il me le ressorte dans un fichier texte, avec le mail et le SamAccountName.

    Voila le script que j'ai, je pense que c'est la condition qui coince, j'ai déjà essaye pas mal de truc différent pourtant (en code j'ai u niveau bidouilleur lol )

    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
     
     
    On Error Resume Next
     
    'déclaration des variables
     
    dim objfichier, Myfile, Ouchoisi
     
    const forReading = 1, ForWriting = 2, ForAppending = 8
     
    'routine de connexion a l'AD
     
    Const ADS_SCOPE_SUBTREE = 2
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
     
    'choix du domaine a éxaminer
     
    DomaineChoisi=inputbox ("veuillez Choisir le domaine que vous voulez inspecter","Choix du domaine")
     
    DomaineChoisi2=inputbox ("veuillez Choisir la fin du nom de domaine que vous voulez inspecter","Choix du domaine")
     
    OuChoisi=inputbox ("veuillez Choisir l'Unité d'organisation que vous voulez inspecter","Choix de l'OU")
     
    'sélection de l'OU dans le domaine
     
    objCommand.CommandText = _
        "SELECT AdsPath FROM 'LDAP://CN="& OuChoisi &", dc="& DomaineChoisi &", dc="& DomaineChoisi2 &"' WHERE objectCategory='user'"
    Set objRecordSet = objCommand.Execute
     
    'création du fichier texte
     
    set objfichier = createobject("scripting.filesystemobject")
     
    NomFichier="test.txt"            '   inputbox ("Veuillez entrez le nom de fichier","Nom du Fichier")
     
    set Myfile = objfichier.opentextfile(NomFichier, ForWriting, true)
     
    'boucle qui vérifie les utilisateurs 1 par 1
     
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
        Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)
     
      'condition, y at'il un numéro sirhano'
     
        If extensionAttribute4 <> "0" Then
     
          ' MsgBox objUser.extensionAttribute4, vbExclamation, "Avertissement"
     
    	   'si oui, afficher tel et tel informations
     
    	   Myfile.Writeline objUser.SamAccountName & ";" & objUser.extensionAttribute4 & ";" & objuser.mail 
     
        End If
     
        objRecordSet.MoveNext
     
    Loop
     
    'message de fin d'éxecution du script
     
    MsgBox "votre recherche dans l'AD est terminée", vbExclamation, "Avertissement"
    Merci d'avance

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

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

    Après une lecture très rapide de ton code, un certain nombre de petites erreur me sont apparues, qui effectivement doivent empêcher ton script de fonctionner.

    Dans un premier temps, tant que ton script ne fonctionne pas, enlève le "on error resume next" au début de ton code qui ne te permet pas de voir à quels endroits se situent tes erreurs.

    Autres modifications à apporter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objCommand.CommandText = _
        "SELECT AdsPath FROM 'LDAP://CN="& OuChoisi &", dc="& DomaineChoisi &", dc="& DomaineChoisi2 &"' WHERE objectCategory='user'"
    - Premièrement, si c'est une OU, il ne faut pas mettre "CN=" mais "OU="
    - Deuxièmement, cette méthode est très restrictive car de cette manière, il est impératif que ton OU se trouve à la racine de ton domaine DomaineChoisi, ce qui ne sera pas forcément toujours le cas si tu veux que le script fonctionne pour n'importe quelle OU.
    De plus ta méthode de récupération du domaine est très restrictive car elle ne fonctionnera que si ton domaine est composé de 2 DC...
    Penche toi vers cela pour retrouver automatiquement le domaine : "LDAP://rootdse"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If extensionAttribute4 <> "0" Then
    - extensionAttribute4 est une variable non initialisée. Peut-être voulais-tu mettre "ObjUser.extensionAttribute4 " ?
    - tu fais une comparaison par rapport à la chaine de caractère "0". Si tu veux que le script te retourne les users ayant un extensionAttribute4 non vide, alors il faut le comparer à une chaine vide : ""

    Voilà, j'espère que ça peut déjà t'aider à avancer un peu. Les erreurs que j'ai relevées sont à mon avis loin d'être exhaustives...

    Mais t'es pas très loin du compte.
    Bonne continuation.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 75
    Par défaut
    Merci beaucoup, grace a toi ca fonctionne comme il faut.

    Je n'ai pas besoin de plus, Pour les OU, ca suffira comme ca

    Encore merci en tout cas

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 09/11/2006, 23h37
  2. [vb6]:Recuperer les caracteres qui sont dans un fichier text
    Par flav66 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/10/2006, 08h44
  3. recuperer valeur dans un fichier texte
    Par darksnake dans le forum VBScript
    Réponses: 6
    Dernier message: 15/09/2006, 20h16
  4. Recuperation de donnees dans un fichier texte.
    Par quentinoux dans le forum C++
    Réponses: 6
    Dernier message: 27/07/2006, 16h59
  5. Réponses: 3
    Dernier message: 22/02/2004, 20h09

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