Het begint al aardig te lukken in vb, het lijkt toch wel flink op delphi in veel opzichten. Alleen heb ik nog één vraagje.
ik heb een formuliertje gemaakt waar je gebruikers kan opzoeken en groepen etc. Alleen lukt het me niet om naar een combinatie van die 2 te zoeken.
Dit is wat ik nu in ieder geval heb:
In de textbox kan ik nu diverse filters invoeren om zo te zoeken in de active directory.
De volgende filters werken gewoon goed:
(&(objectCategory=group)(|(cn=p*))) Dit geeft dus alle groepen die beginnen met een p
(&(objectCategory=person)(|(cn=henk jansen))) Nu zie je dus iedereen die henk jansen heet.
opzich zou het met zo'n filter ook mogelijk moeten zijn om er achter te komen wie er allemaal lid zijn van een bepaalde groep.
Nu staan er op deze site diversee manieren om dit te doen:
http://www.rlmueller.net/ADOSearchTips.htm
maar als ik daar iets van probeer komen er gewoon geen resultaten zoals bijvoorbeeld deze:
Alle losse filters werken eigenlijk wel maar als je een combinatie wilt gaat het fout. Weet iemand hier een oplossing voor?
ik heb een formuliertje gemaakt waar je gebruikers kan opzoeken en groepen etc. Alleen lukt het me niet om naar een combinatie van die 2 te zoeken.
Dit is wat ik nu in ieder geval heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| Imports System
Imports System.DirectoryServices
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rootEntry _
As New DirectoryEntry("GC://dc=domein,dc=local")
Dim searcher As New DirectorySearcher(rootEntry)
End Sub
Private Sub BtZoekGroep_Click...
Private Sub BtClearAll_Click_1...
Private Sub BtToevoegen_Click...
Private Sub BtZoekUser_Click...
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Results.Items.Clear()
Dim rootEntry _
As New DirectoryEntry("GC://dc=domein,dc=local")
Dim searcher As New DirectorySearcher(rootEntry)
searcher.PropertiesToLoad.Add("cn")
'searcher.PropertiesToLoad.AddRange(New String() {"cn"})
'would also work and saves you some code
searcher.PageSize = 5
searcher.ServerTimeLimit = New TimeSpan(0, 0, 30)
searcher.ClientTimeout = New TimeSpan(0, 10, 0)
searcher.Filter = TextBox1.Text
Dim queryResults As SearchResultCollection
queryResults = searcher.FindAll()
Dim result As SearchResult
For Each result In queryResults
Results.Items.Add(result.Properties("cn")(0))
Next
End Sub
End Class |
In de textbox kan ik nu diverse filters invoeren om zo te zoeken in de active directory.
De volgende filters werken gewoon goed:
(&(objectCategory=group)(|(cn=p*))) Dit geeft dus alle groepen die beginnen met een p
(&(objectCategory=person)(|(cn=henk jansen))) Nu zie je dus iedereen die henk jansen heet.
opzich zou het met zo'n filter ook mogelijk moeten zijn om er achter te komen wie er allemaal lid zijn van een bepaalde groep.
Nu staan er op deze site diversee manieren om dit te doen:
http://www.rlmueller.net/ADOSearchTips.htm
maar als ik daar iets van probeer komen er gewoon geen resultaten zoals bijvoorbeeld deze:
code:
1
2
| To return all users that are direct members of a specified group. You must specify the Distinguished Name of the group. Wildcards are not allowed: "(&(objectCategory=person)(objectClass=user)" _ & "(memberOf=cn=TestGroup,ou=Sales,dc=MyDomain,dc=com))" |
Alle losse filters werken eigenlijk wel maar als je een combinatie wilt gaat het fout. Weet iemand hier een oplossing voor?