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 :

Comptage dans un array


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Comptage dans un array
    Bonjour a ttes et tous,

    Dans un script (qui tourne sans problème) et ou je récupere les groupes de chaque utilisateur d'AD, je voulais savoir s'il existe une fonction qui me permette de compter le nombre d'entrée dans mon array. En fait je voudrais connaitre le nombre de groupes de l'utilisateur avant de les afficher:

    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
    Do Until objRecordSet.EOF  
        Set objUser = GetObject(objRecordSet.Fields("ADsPath").Value)
        objRecordSet.MoveNext
        
           arrMemberOf = objUser.GetEx("memberOf")
    
    'nombre de groupes de mon utilisateur, commande du genre
    	arrMemberOfNumber = objUser.GetEx("memberOf").count
    
            MY_FILE.writeline "Nombre de groupes " & arrMemberOfNumber & vbCRLF
        	
        	For Each Group In arrMemberOf
        	    	MY_FILE.writeline vbTab & "- " & USER_GROUP
        	Next
        
            
    Loop
    Merci par avance de vos avis eclairés

    PhBeranger

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    voici ce que je te propose :

    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
           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") = 2000
           objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
     
           objCommand.CommandText = "SELECT Name FROM 'LDAP://dc=fabrikam,dc=com' WHERE objectCategory='group'"
           Set objRecordSet = objCommand.Execute
     
           Msgbox objRecordSet.RecordCount
    Dis moi si ca te conviens ou pas.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Comptage dans un array
    Bonjour et merci pour la réponse,

    J'ai oublié de préciser une ligne importante dans mon code d'hier, c'est qu'en fait je fais un select sur "objectCategory='user'". Donc je récupère diverses infos utilisateurs (tel,mobile,email....) puis les groupes relatifs à chaque utilisateur. J'ai trouvé un palliatif en faisant un incrément sur une variable.

    objCommand.CommandText = _
    "SELECT * FROM 'LDAP://dc=ums-gaas,dc=com' WHERE " _
    & "objectCategory='group'"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF  
        
        Set objUser = GetObject(objRecordSet.Fields("ADsPath").Value)
        objRecordSet.MoveNext
        arrMemberOf = objUser.GetEx("memberOf")   	
        	
    For Each Group In arrMemberOf
     Total_Group =  Total_Group +1
    Next
    MY_FILE.writeline Total_Group
    
    Loop

    Encore merci

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Comptage dans un array
    Rectificatif, erreur dans le code..

    J'ai oublié de préciser une ligne importante dans mon code d'hier, c'est qu'en fait je fais un select sur "objectCategory='user'". Donc je récupère diverses infos utilisateurs (tel,mobile,email....) puis les groupes relatifs à chaque utilisateur. J'ai trouvé un palliatif en faisant un incrément sur une variable.

    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
    objCommand.CommandText = _
    "SELECT * FROM 'LDAP://dc=ums-gaas,dc=com' WHERE " _
    & "objectCategory='user'"
     
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF  
     
        Set objUser = GetObject(objRecordSet.Fields("ADsPath").Value)
        objRecordSet.MoveNext
        arrMemberOf = objUser.GetEx("memberOf")   	
     
    For Each Group In arrMemberOf
     Total_Group =  Total_Group +1
    Next
    MY_FILE.writeline Total_Group
     
    Loop
    Merci à ce forum

Discussions similaires

  1. comptage dans mon array
    Par zugolin dans le forum Langage
    Réponses: 4
    Dernier message: 21/03/2010, 01h58
  2. Copier dans un Array
    Par Goundy dans le forum Langage
    Réponses: 3
    Dernier message: 26/11/2005, 21h24
  3. Réponses: 5
    Dernier message: 18/11/2005, 22h11
  4. pb de comptage dans un recordset
    Par sharpeye dans le forum Access
    Réponses: 2
    Dernier message: 15/11/2005, 13h39
  5. Insérer dans un array
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 29/03/2005, 09h22

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