cs_Chewba
Messages postés90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 septembre 2006
-
30 juin 2005 à 11:26
cs_Chewba
Messages postés90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 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.
là, l'arborescence est presque bonne mais n'est que dans le 1er OU, alors si tu as une solution...
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 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és521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 septembre 2006 30 juin 2005 à 14:35
merci, je viens d'essayer et j'ai toujours le même résultat...
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 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és90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 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és521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 septembre 20086 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és90Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention10 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 ?
1 juil. 2005 à 09:03
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...
30 juin 2005 à 17:06
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 ?
30 juin 2005 à 15:49
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
30 juin 2005 à 15:28
30 juin 2005 à 14:35
30 juin 2005 à 14:14
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
30 juin 2005 à 12:45
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
30 juin 2005 à 12:02
30 juin 2005 à 11:55
as tu bien mis ton nom de domaine DNS au demarrage ?
as tu des utilisateurs ou des groupes ?
30 juin 2005 à 11:26
Super ta source, j'ai juste un prob, j'ai l'arborescence de monAD mais rien sous computer...Peux-tu m'aider ?
Merci dravance