LDAP ACTIVE DIRECTORY EXPLORER

cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006 - 30 juin 2005 à 11:26
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006 - 1 juil. 2005 à 09:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26956-ldap-active-directory-explorer

cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
1 juil. 2005 à 09:03
Salut,

En fait c'est la boucle dans ListAD qui a un prob, il faudrait qu'il boucle pour chaque OU et ajoute chaque groupe dans chaque OU à ce niveau-là...

en fait, j'ai fait un test en ajoutant ceci:

If InStr(1, Child.Name, "cn=", vbTextCompare) Then
TreeView1.Nodes.Item("node" & CompteurNode).Image = 1
TreeView1.Nodes.Add 1, tvwChild, "node" & CompteurNode, Mid(Child.Name, 4, Len(Child.Name) - 3)
ElseIf InStr(1, Child.Name, "ou=", vbTextCompare) Then
TreeView1.Nodes.Add , , "node" & CompteurNode, Mid(Child.Name, 4, Len(Child.Name) - 3)
TreeView1.Nodes("node" & CompteurNode).Image = 2
...

là, l'arborescence est presque bonne mais n'est que dans le 1er OU, alors si tu as une solution...
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
30 juin 2005 à 17:06
Non je n'ai pas de ZIP sur cette source, fait l'effort de comprendre ce code et de debeugger pour trouver pourquoi tu ne remonte rien, l'utilisation de WMI fonctionne tres bien pour manipuler active directory.
le mode pas a pas est la meilleur methode pour comprendre ou est le HIC pour toi.

est tu vraiement sur d'avoir donné le bon nom de domaine et suffixe de ton domaine ?
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
30 juin 2005 à 15:49
je ne comprends pq ça ne fonctionne pas...
sinon, je vois que tu a déposé un commen taire sur la source suivante: http://www.vbfrance.com/code.aspx?id=6350, n'aurais-tu pas un zip utilisant cette méthode ?

merci
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
30 juin 2005 à 15:28
execute le prog en mode pas a pas avec des espions pour verifier si il recupere bien des valeurs et identifier d'ou viens ton probleme. voir aussi la fonction ListAD()
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
30 juin 2005 à 14:35
merci, je viens d'essayer et j'ai toujours le même résultat...
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
30 juin 2005 à 14:14
cette version etait une presentation simple, je sais qu'elle ne gerait pas la recurisivite des sous OU, sous sous OU, ....

Donc c'est la qu'il faut que tu travaille pour voir les computers et users dans tes sous OU

remplace la Sub RecursiviteChild par celle ci ca devrait marcher :



Sub recursiviteChild(ChildName As String, NumeroNodeParent As Long)
On Error Resume Next
Dim NumeroNodeSousParent As Long
Dim NomParent As String
If TxtSuffixeDomaine.Text <> "" Then
Set objGroup = GetObject("LDAP://" & ChildName & ",dc=" & TxtNameDomaine.Text & ",dc=" & TxtSuffixeDomaine.Text)
Else
Set objGroup = GetObject("LDAP://" & ChildName & ",dc=" & TxtNameDomaine.Text)
End If

For Each Child In objGroup
If Child.Name <> "" Then
CompteurNode = CompteurNode + 1
NumeroNodeSousParent = CompteurNode
TreeView1.Nodes.Add "node" & NumeroNodeParent, tvwChild, "node" & CompteurNode, Mid(Child.Name, 4, Len(Child.Name) - 3)
ReDim Preserve MyListAD(CompteurNode)
MyListAD(CompteurNode).Name = Mid(Child.Name, 4, Len(Child.Name) - 3)
MyListAD(CompteurNode).ParentContainer = Mid(Child.Parent, 8, InStr(1, Child.Parent, ",", vbTextCompare) - 8)
NomParent = ""
If Child.Class = "group" Then
TreeView1.Nodes("node" & CompteurNode).Image = 3
NomParent = Child.Name & "," & ChildName
ElseIf Child.Class = "computer" Then
NomParent = Child.Name
TreeView1.Nodes("node" & CompteurNode).Image = 5
ElseIf Child.Class = "user" Then
NomParent = Child.Name
TreeView1.Nodes("node" & CompteurNode).Image = 4
ElseIf Child.Class = "organizationalUnit" Then
'NomParent = Child.Name
NomParent = Child.Name & "," & ChildName
TreeView1.Nodes("node" & CompteurNode).Image = 2
Else
TreeView1.Nodes("node" & CompteurNode).Image = 6
End If
If NomParent <> "" Then recursiviteChild NomParent, NumeroNodeSousParent
End If
Next

For Each objMember In objGroup.Members
If objMember.Name <> "" Then
CompteurNode = CompteurNode + 1
NumeroNodeSousParent = CompteurNode
TreeView1.Nodes.Add "node" & NumeroNodeParent, tvwChild, "node" & CompteurNode, Mid(objMember.Name, 4, Len(objMember.Name) - 3)
ReDim Preserve MyListAD(CompteurNode)
MyListAD(CompteurNode).Name = Mid(objMember.Name, 4, Len(objMember.Name) - 3)
MyListAD(CompteurNode).ParentContainer = Mid(objMember.Parent, 8, InStr(1, objMember.Parent, ",", vbTextCompare) - 8)
If objMember.Class = "group" Then
TreeView1.Nodes("node" & CompteurNode).Image = 3
NomParent = objMember.Name & "," & Mid(objMember.Parent, 8, InStr(1, objMember.Parent, ",", vbTextCompare) - 8)
ElseIf objMember.Class = "computer" Then
TreeView1.Nodes("node" & CompteurNode).Image = 5
NomParent = objMember.Name
Else
TreeView1.Nodes("node" & CompteurNode).Image = 4
NomParent = objMember.Name
End If
If NomParent <> "" Then recursiviteChild NomParent, NumeroNodeSousParent
End If
Next
Set objGroup = Nothing

End Sub
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
30 juin 2005 à 12:45
Je pense savoir où ce situe le prob:

Mon AD est en plusieurs groupes: au lieu d'avoir directement computers, users, etc... sous l'arborescence même de l'AD, j'ai des groupes du style: NTP - et puis sous ça, j'ai computers, users, etc..., donc si tu pouvais m'aider ce serait sympa...

merci
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
30 juin 2005 à 12:02
non, j'ai rien de tout ça, j'ai juste l'arborescence de l'AD et c'est tout... sans rien sous utilisateur, computers, etc...
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
30 juin 2005 à 11:55
Bizarre pour moi tout est OK j'ai bien une liste de PCs sous Computers et une liste d'utilisateurs sous USER.
as tu bien mis ton nom de domaine DNS au demarrage ?
as tu des utilisateurs ou des groupes ?
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
30 juin 2005 à 11:26
Bonjour,

Super ta source, j'ai juste un prob, j'ai l'arborescence de monAD mais rien sous computer...Peux-tu m'aider ?

Merci dravance
Rejoignez-nous