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 et AD récupération d'utilisateurs en fonction d'un groupe


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 65
    Par défaut Vbs et AD récupération d'utilisateurs en fonction d'un groupe
    Bonjours, je dois créer un script en vbs qui liste tous les utilisateurs d'un groupe en tapant celui-ci, les utilisateurs doivent être listé dans la fenêtre dos mais ne doivent pas être enregistré sous forme de fichier texte. Avez-vous une idée ? Le script doit être exécuter sous commande dos et le nom du groupe est un paramètre et dois ce taper après la ligne d'exécution du script(Je ne connais absolument rien en vbs, je ne sais même pas si il y a une commande de connexion a l'AD, je débute vraiment)

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    une petite recherche sur le forum, ca a du etre fait plein de fois, par exemple là : http://www.developpez.net/forums/d88...s-requete-lad/

    pour te repérer dans l'arborescence de l'AD le logiciel LDAPBrowser est pratique.

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 65
    Par défaut
    Exact j'ai déjà vu cette page du forum, mais ce que j'aimerais savoir, c'est comment en tapant le nom d'un groupe il peux lister les membres de celui-ci.

  4. #4
    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
    Salut.

    Tu peux faire ça avec une ptite requête ADODB sur ton AD :

    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 objRootDSE = GetObject("LDAP://rootDSE")
    strRootDSE = objRootDSE.Get("defaultNamingContext")
     
    strGroupName = "CN de ton groupe"
     
    Set objCommand = CreateObject("ADODB.Command")
    	objCommand.ActiveConnection = objConnection
    	objCommand.CommandText = "<GC://" & strRootDSE & ">;(&(objectCategory=group)(cn=" & strGroupName & "))" & ";distinguishedName;subtree"
     
    Set objGroup = GetObject ("LDAP://" & objRecordSet.Fields("distinguishedName"))
     
    For each objMember in objGroup.Members
      MsgBox objMember.sAMAccountName
    Next

  5. #5
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 65
    Par défaut
    Merci sa c'est super, mais en fait je ne veux pas marquer le groupe directement dans le script mais par le biais d'une commande dos ou je noterais le nom du groupe. Le tout lancerais mon script et listerais les membres du groupes que j'ai indiquer. J'appelle ça un paramètre mais je ne sais pas du tout comment ça fonctionne.

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 65
    Par défaut
    Je crois que j'ai compris : à la place de strGroupName = "CN de ton groupe" dans le script, je le rentre directement dans la fenêtre dos après la commande pour lancer le script, corriger moi si je me trompe.

    Edit : Voila mon code j'y ai rajouté des argument :

    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
    Set objRootDSE = GetObject("LDAP://rootDSE")
    strRootDSE = objRootDSE.Get("defaultNamingContext")
    Dim arg
    Set arg = WScript.Arguments 
    strGroupName = arg(0) 
     
    Set objCommand = CreateObject("ADODB.Command")
    	objCommand.ActiveConnection = objConnection
    	objCommand.CommandText = "<GC://" & strRootDSE & ">;(&(objectCategory=group)(cn=" & strGroupName & "))" & ";distinguishedName;subtree"
     
    Set objGroup = GetObject ("LDAP://" & objRecordSet.Fields("distinguishedName"))
     
    For each objMember in objGroup.Members
      MsgBox objMember.sAMAccountName
    Next
    Mais sa ne marche pas une erreur ADODB.Command: Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres.

    Je ne vois vraiment pas :s

  7. #7
    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
    Salut.

    Désolé, je viens de me rendre compte qu'il en manquait beaucoup dans le code que je t'ai filé...

    Voilà, cela devrait fonctionner :
    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
    Set objRootDSE = GetObject("LDAP://rootDSE")
    strRootDSE = objRootDSE.Get("defaultNamingContext")
     
    strGroupName = WScript.Arguments (0)
     
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Open "Provider=ADsDSOObject;"
     
    Set objCommand = CreateObject("ADODB.Command")
    	objCommand.ActiveConnection = objConnection
    	objCommand.CommandText = "<GC://" & strRootDSE & ">;(&(objectCategory=group)(cn=" & strGroupName & "))" & ";distinguishedName;subtree"
     
    Set objRecordSet = objCommand.Execute
    Set objGroup = GetObject ("LDAP://" & objRecordSet.Fields("distinguishedName"))
     
    For each objMember in objGroup.Members
      WScript.Echo objMember.sAMAccountName
    Next

  8. #8
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 65
    Par défaut
    Je ne comprend pas, j'ai encore une erreur, sa fait 3 jours que j'essaye de la corriger mais sa ne marche pas :

    ligne 14 caractère 1 une exception s'est produite.

Discussions similaires

  1. récupération de fichier en fonction de leur contenu
    Par Ted37 dans le forum Scripts/Batch
    Réponses: 35
    Dernier message: 31/07/2008, 16h43
  2. Récupération login utilisateur
    Par vva dans le forum Apache
    Réponses: 3
    Dernier message: 03/07/2008, 09h59
  3. Réponses: 1
    Dernier message: 16/10/2006, 18h07
  4. [XPath]récupération d'éléments en fonction d'attributs
    Par ep31 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/06/2006, 11h58
  5. [VBS] recherche OU d'un utilisateur dans Active directory
    Par Amandine62 dans le forum VBScript
    Réponses: 7
    Dernier message: 16/02/2006, 08h42

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