[VB6/LDAP] Alle gebruikers ophalen uit de AD

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008
  • Reageer

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Ik probeer uit de Active Directory alle gebruikers te halen met VB6 en LDAP.
Eigenlijk heb ik het idee dat ik helemaal in de verkeerde richting zit te zoeken, maar ik kom er niet meer uit. Wat werkte (maar alleen op de server) was deze link.

Verder heb ik op google gezocht op:
vb6 ldap
vb6 ldap authitencation
en vb6 "active directory" access

eerlijk gezegd wordt ik een beetje hopeloos nu, ik heb geen idee waar ik nog moet zoeken.

Iemand een idee?

[ Voor 4% gewijzigd door coenbijlsma op 10-01-2006 17:22 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Hij doet ut niet... daar hebben we wat aan. Wat doet het niet? Welke foutmeldingen krijg je? Draai je de applicatie op een computer die aangesloten is op hetzelfde domein als de server waarop je het wel aan de praat kreeg? Gebruik je dezelfde user als op de server?

Ik kan zo nog wel even doorgaan, maar ik denk dat de hint duidelijk is, niet? Need more info!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 15-04 18:33

Guldan

Thee-Nerd

maar bovenstaande link (van de code die werkte) geeft toch alle users weer terug uit de LDAP? tenminste voor zover ik kan zien wel iig. IK heb echter alleen ervaring met LDAP onder PHP. Wat ik echt wel een handig hulpmiddel vond was een LDAP browser. Hiermee kun je via een programma door je LDAP directory heengaan en ook die filters uitproberen.

Maar wat ging er nu eigenlijk fout? en wat is je vraag eigenlijk?

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
@bigbeng:
concreet weet ik niet wat ik in moet vullen in de query die de users van de LDAP server haalt.

De fout zit hem dus in regel 30 en 31, waar vb het type IADs niet (her)kent.
FYI:
Visual Basic:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Option Explicit

Public Sub AllUsers()

'PURPOSE:  Gets all user name for the current domain
'and returns them in a string array, using LDAP

'Requires: ADSI, LDAP provider
'This function tested on Windows 2000 RC2

'RETURNS: String array containing all
'Logon Names for the current domain

'Requires VB6 because in lower versions
'array cannot be return type for a
'function

'EXAMPLE
'Dim sArray() As String
'Dim iCtr As Integer

'sArray = AllUsers
'For iCtr = 0 To UBound(sArray)
'    Debug.Print sArray(iCtr)
'Next

Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset

'HIER GAAT HET DUS FOUT:
Dim oRoot As IADs
Dim oDomain As IADs
Dim sBase As String
Dim sFilter As String
Dim sDomain As String

Dim sAttribs As String
Dim sDepth As String
Dim sQuery As String
Dim sAns() As String
Dim iElement As Integer

On Error GoTo errhandler:

Set oRoot = GetObject("LDAP:/192.168.0.1/rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sBase = "<" & oDomain.ADsPath & ">"
sFilter = "(&(objectCategory=person)(objectClass=user))"
sAttribs = "name"
sDepth = "subTree"

sQuery = sBase & ";" & sFilter & ";" & sAttribs & ";" & sDepth
                   
conn.Open _
  "Data Source=Active Directory Provider;Provider=ADsDSOObject"
  
Set rs = conn.Execute(sQuery)
ReDim sAns(0) As String

With rs
    Do While Not .EOF
        iElement = IIf(sAns(0) = "", 0, iElement + 1)
        ReDim Preserve sAns(iElement) As String
        Debug.Print rs("name")
       .MoveNext
    Loop
End With
'AllUsers = sAns

errhandler:

On Error Resume Next
If rs.State <> 0 Then rs.Close
If conn.State <> 0 Then conn.Close
Set rs = Nothing
Set conn = Nothing
Set oRoot = Nothing
Set oDomain = Nothing

End Sub


@Guldan:
Hij werkt inderdaad op de server, maar ik wil juist dat hij vanaf een werkstation werkt...

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Je moet even een project referentie (menu Project -> References) aanleggen naar:
Active DS Type Library

Dan zou de fout weg moeten zijn. Verder kun je de gegevens hetzefde houden als dat ze waren op de server.

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Bedankt!! Ik ben er zo inderdaad uit. Waar je je al niet blind op kunt staren... 8)7
Pagina: 1