Announcement

Collapse
No announcement yet.

Problem bei Suche über Active Directory

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bei Suche über Active Directory

    Hallo Forum,

    Ich haber hier ein kleines Problem. Folgender VBA Quelltext macht mir ein bisschen Kopfzerbrechen.

    'create filestream for writing
    Dim FSO, Datei
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FileWrite = FSO.CreateTextFile("deleted.csv")
    Dim strRead

    'open filestream for reading
    Set FileRead = FSO.OpenTextFile("Location.txt", 1)

    While not FileRead.AtEndOfStream
    'Initialise variable with the textfile
    strRead = FileRead.ReadLine()
    strCountry = Split(strRead, ",")(0) 'Initialise Country
    strLocation = Split(strRead, ",")(1) 'Initialise Location
    strDomain = Split(strRead, ",")(2) 'Initialise Domain

    'Path for Search
    <b>path = "LDAP://OU=" & strLocation & ",OU=" & strCountry & ",DC=" & strDomain & ",DC=xxx,DC=xxx,DC=xxx"</b>

    'SQL searchstring
    <b>sql = "SELECT ADsPath FROM '" & path & "' WHERE objectClass='User' and description='deleted'"</b>

    Set objconn = CreateObject("ADODB.Connection")
    Set objcomm = CreateObject("ADODB.Command")
    objconn.Provider = "ADsDSOObject"
    objconn.open "Active Directory Provider"

    Set objcomm.ActiveConnection = objconn

    'parameters for search
    objcomm.CommandText = sql
    objcomm.Properties("Page Size") = 1000
    objcomm.Properties("Searchscope") = 2

    'execute search
    Set rs = objcomm.Execute

    If Not rs.EOF Then
    rs.MoveFirst
    Do Until rs.EOF
    Set objkonto = GetObject(rs("ADsPath"))
    strRead = objkonto.ADsPath
    'cut "LDAP://" from the left side of the string
    strRead = Right(strRead, Len(strRead) - 7)
    'first split the Canonical Name by "," then by "="
    FileWrite.Write(Split(Split(strRead, ",")(0), "=")(1)) & ";" 'Logon Name
    FileWrite.Write(objkonto.DisplayName) & ";" 'DisplayName
    FileWrite.Write(Split(Split(strRead, ",")(2), "=")(1)) & ";" 'SAXXX
    FileWrite.Write(Split(Split(strRead, ",")(4), "=")(1)) & ";" 'Country
    FileWrite.Write(Split(Split(strRead, ",")(3), "=")(1)) & ";" 'Location
    FileWrite.Write(objkonto.Description) 'Description
    FileWrite.WriteLine
    rs.MoveNext
    Loop
    rs.Close
    End If
    Wend

    'Close opened files
    FileRead.Close
    FileWrite.Close

    MsgBox("Skript abgeschlossen")

    Ich lese über eine Textdatei verschiedene Domänen sowie Locations aus um dann dort nach Usern zu suchen in deren Beschreibungsfeld "deleted" drin steht, das im sql string auch zu sehen ist. Das funktioniert in unserer deutschen Domäne auch einwandfrei, und die Namenskonventionen gelten auch weltweit in der Firma. Wenn ich jetzt auf die Südamerikanischen und Spanischen Domänen zugreifen will, führt er mir die Suche erfolgreich durch, ohne etwas auszugeben.

    Über Active Directory Admin Client finde ich hier aber Ergebnisse. Hat jemand einen Tipp was ich in VBA zu berücksichtigen habe, damit ich in einer anderen Domäne auch etwas finde?

    Gruß

    Markus Seidl
Working...
X