Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2905 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appartenance à un groupe AD vbs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appartenance à un groupe AD vbs

n°1404083
JUJU
Posté le 10-07-2006 à 17:22:34  profilanswer
 

Hello,
 
J'utilise actuellement le script vbs suivant pour tester l'appartenance aux groupes AD.
La limite de ce script est de ne sortir que le premier niveau d'appartenance.
J'aimerai aller juste un niveau au dessus.
Ainsi pour un utilisateur donné s'il appartient au groupe A lui même memebre du groupe B, j'aimerai que le script me renvoi ces 2 groupes...
 
Avez-vous une idée?
-------------------------------------------------------------
On error resume next
 
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set ObjNetwork = WScript.CreateObject("WScript.Network" )
set WshShell = CreateObject("WScript.Shell" )
 
DomainName=WshShell.ExpandEnvironmentStrings("%USERDOMAIN%" )
 
Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
 
 
'Init Groups
Dim UserGroups
Dim GroupObj
UserGroups=""
For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & "[" & GroupObj.Name & "]"
Next
 
'wscript.echo "Membre de "&UserGroups
 
 
 
'
Function InGroup(strGroup)
  InGroup=False
  If InStr(UserGroups,"[" & strGroup & "]" ) Then
    InGroup=True
  End If
End Function
 
-------------------------------------------------------------
 
Merci d'avance
 
 :hello:

mood
Publicité
Posté le 10-07-2006 à 17:22:34  profilanswer
 

n°1406157
JUJU
Posté le 13-07-2006 à 10:34:52  profilanswer
 

Personne n'aurai une petite idée?

n°1408419
JUJU
Posté le 18-07-2006 à 10:40:03  profilanswer
 

:bounce:

n°1408627
sennastien
Driven to perfection
Posté le 18-07-2006 à 14:44:29  profilanswer
 

ADSI?


---------------
ビブリボン | Memoro de la Stono | まかんこうさっぽう

n°1409696
JUJU
Posté le 19-07-2006 à 19:18:11  profilanswer
 


 
Qu'est-ce donc?

n°1412306
JUJU
Posté le 24-07-2006 à 14:25:49  profilanswer
 

J'arrive pas vraiment a m'en sortir.
J'ai bien trouvé des scripts permettant de lister tous les groupes mais il faut utiliser la syntaxe LDAP:// plutot que WinNT:// donc moins intéressant
 
Quelqu'un aurait-il une piste?

n°1412536
sennastien
Driven to perfection
Posté le 24-07-2006 à 17:45:38  profilanswer
 

Ah non c'est plus interessant justement, tiens voila ce que j'ai:
Tu rentres ton nom d'utilisateur que tu cherches ainsi que le chemin LDAP de ton domaine (L'OU par défaut est déjà indiquée)
 
Voila amuse toi bien ;)
 


On Error Resume Next
Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
StrUser=InputBox("User?","ListMembersGroups" )
LDAPPAth=InputBox("Chemin LDAP?","ListMembersGroups","cn=Users,dc=xxxxxx,dc=xxxxxx" )
If LDAPPAth = "cn=Users,dc=xxxxxx,dc=xxxxxx" Then WScript.quit
Set objUser = GetObject("LDAP://cn=" & StrUser & "," & LDAPPAth)  
intPrimaryGroupID = objUser.Get("primaryGroupID" )
arrMemberOf = objUser.GetEx("memberOf" )
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
    WScript.Echo "The memberOf attribute is not set."
Else
    For Each Group in arrMemberOf
        WScript.Echo "Member of: "
        WScript.Echo Group  
        Set objGroup = GetObject("LDAP://" & Group)
  objGroup.GetInfo
  GroupsarrMembersOf = objGroup.GetEx("memberOf" )
  For Each strMemberOf in GroupsarrMembersOf
      If strMemberOf <> "" Then
       ArrGroup=Split(Group,"," )
       ArrGroupMember=Split(strMemberOf,"," )
    WScript.Echo  """" & Mid(ArrGroup(0),4) & """ Group is Member Of: """ & Mid(ArrGroupMember(0),4) & """"
   End If
  Next
        WScript.Echo vbLf
    Next
End If


 


---------------
ビブリボン | Memoro de la Stono | まかんこうさっぽう

n°1412546
galopin01
Posté le 24-07-2006 à 17:55:21  profilanswer
 

Y en a qui s'emm... vraiment pendant les vacances !
pardon... qui s'amusent comme des p'tits fous !

n°1412772
JUJU
Posté le 25-07-2006 à 08:49:31  profilanswer
 

sennastien a écrit :

Ah non c'est plus interessant justement, tiens voila ce que j'ai:
Tu rentres ton nom d'utilisateur que tu cherches ainsi que le chemin LDAP de ton domaine (L'OU par défaut est déjà indiquée)
 
Voila amuse toi bien ;)
 


On Error Resume Next
Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
StrUser=InputBox("User?","ListMembersGroups" )
LDAPPAth=InputBox("Chemin LDAP?","ListMembersGroups","cn=Users,dc=xxxxxx,dc=xxxxxx" )
If LDAPPAth = "cn=Users,dc=xxxxxx,dc=xxxxxx" Then WScript.quit
Set objUser = GetObject("LDAP://cn=" & StrUser & "," & LDAPPAth)  
intPrimaryGroupID = objUser.Get("primaryGroupID" )
arrMemberOf = objUser.GetEx("memberOf" )
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
    WScript.Echo "The memberOf attribute is not set."
Else
    For Each Group in arrMemberOf
        WScript.Echo "Member of: "
        WScript.Echo Group  
        Set objGroup = GetObject("LDAP://" & Group)
  objGroup.GetInfo
  GroupsarrMembersOf = objGroup.GetEx("memberOf" )
  For Each strMemberOf in GroupsarrMembersOf
      If strMemberOf <> "" Then
       ArrGroup=Split(Group,"," )
       ArrGroupMember=Split(strMemberOf,"," )
    WScript.Echo  """" & Mid(ArrGroup(0),4) & """ Group is Member Of: """ & Mid(ArrGroupMember(0),4) & """"
   End If
  Next
        WScript.Echo vbLf
    Next
End If



 
 
Le truc c'est que tous mes utilisateurs ne sont pas dans le conteneur "Builtin Users" et que le chemin LDAP n'est donc jamais le même.
L'idée c'est d'avoir un mappage des ressources en fonction du groupe d'appartenance et ce pour chaque utilisateur au login...
 
C'est pour cela que j'arrive pas a m'en sortir avec la syntaxe LDAP://, et aussi, et même surout parceque je suis un novice en wsh...

n°1412830
sennastien
Driven to perfection
Posté le 25-07-2006 à 10:21:20  profilanswer
 

A ce moment là fait d'abord une recherche de ton chemin LDAP sur ta liste de user puis pour chaque chemin trouvé, tu inseres directement le chemin LDAP dans ta requête des membres de groupe.
 
De toutes façons tu ne dois pas avoir 200 chemins différents, tes Users sont contenus majoritairement dans une OU nan?


---------------
ビブリボン | Memoro de la Stono | まかんこうさっぽう

mood
Publicité
Posté le 25-07-2006 à 10:21:20  profilanswer
 

n°1413335
JUJU
Posté le 25-07-2006 à 18:28:28  profilanswer
 

sennastien a écrit :

A ce moment là fait d'abord une recherche de ton chemin LDAP sur ta liste de user puis pour chaque chemin trouvé, tu inseres directement le chemin LDAP dans ta requête des membres de groupe.


 
Tu veux dire qu'on peux obtenir le chemin LDAP de l'utilisateur connécté?
A quoi ressemblerai ce bout de script?
 

sennastien a écrit :

De toutes façons tu ne dois pas avoir 200 chemins différents, tes Users sont contenus majoritairement dans une OU nan?


 
Non, c'est clair. Je dois avoir 7 ou 8 OU "Users"
 
Merci pour tes réponses en tout cas...on vas y arriver

n°1413647
sennastien
Driven to perfection
Posté le 26-07-2006 à 10:54:28  profilanswer
 

JUJU a écrit :

Tu veux dire qu'on peux obtenir le chemin LDAP de l'utilisateur connécté?
A quoi ressemblerai ce bout de script?

  

Non, c'est clair. Je dois avoir 7 ou 8 OU "Users"

 

Merci pour tes réponses en tout cas...on vas y arriver

 


  


Of course  :)
http://www.microsoft.com/france/te [...] y1021.mspx  
 
et pour répondre plus directemetn  à ta question, voila le code:
 
On Error Resume Next
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  
objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://dc=TOTO,dc=fr' WHERE objectCategory='user' "
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo objRecordSet.Fields("distinguishedName" ).Value
    objRecordSet.MoveNext
Loop
 
Et voila ;)

Message cité 1 fois
Message édité par sennastien le 26-07-2006 à 11:05:05

---------------
ビブリボン | Memoro de la Stono | まかんこうさっぽう

n°1414245
JUJU
Posté le 27-07-2006 à 08:41:04  profilanswer
 

sennastien a écrit :

Of course  :)  
http://www.microsoft.com/france/te [...] y1021.mspx  
 
et pour répondre plus directemetn  à ta question, voila le code:
 
On Error Resume Next
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  
objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://dc=TOTO,dc=fr' WHERE objectCategory='user' "
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo objRecordSet.Fields("distinguishedName" ).Value
    objRecordSet.MoveNext
Loop
 
Et voila ;)


 
 
 
Ca c'est de la réactivité.
Le lien vers le site MS peut m'être également fort utile.
Je vais regarder comment utiliser tout ca dans mon script existant mais je dois dire que je commence à y voir un peu plus clair.
 
Je te tiens au courant.
 
Merci encore
 
:jap:

n°1580199
tdanet
Posté le 28-06-2007 à 08:52:44  profilanswer
 

Bonjour,
 
Finalement as-tu trouvé le code pour pouvoir lister tous les utilisateurs contenu dans un groupe et sous groupe ?
Je suis à la recherche active de ce type de code mais pour l'instant, comme bon nombre, je n'arrive à ressortir que les users contenu dans le groupe.
 
Je ne suis pas vraiment un spécialiste de VBS...
 
Merci
Teddy


Message édité par tdanet le 28-06-2007 à 09:04:08

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appartenance à un groupe AD vbs

 

Sujets relatifs
C#, Active Directory, recherche d'utilisateurs dans un groupe[PHP/Active Directory] Problème d'accès au groupe AD avec PHP
Appartenance des sourcespygame et groupe de sprites
VBS - Recherche dans un groupe d'utilisateurs[VBScript] [RESOLU] Stratégie de groupe, système...
Connaitre le groupe d'un UserModification du groupe affecté par défaut pour un nouveau dossier
[KiX]Trouver à quel groupe appartient un utilisateurVariables de groupe d'utilisateur
Plus de sujets relatifs à : Appartenance à un groupe AD vbs


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)