Abfragen von USER in einer AD via LDAP und Ausgabe in SQL

  • Moin, moin

    Ich möchte gern gewisse Attribute von Benutzern innerhalb einer AD via LDAP abfragen. Z.B.: Vorname, Nachname, Emailadresse, Benutzername etc.
    Das Ergebnis möchte ich gern in einer SQL-Datenbank bzw. Tabelle abspeichern. Ich hab durch Recherche im Forum den Link : http://www.autoitscript.com/forum/index.php?showtopic=29100&hl= gefunden. Der dort hinterlegte Code:

    [autoit]


    #include <GUIConstants.au3>
    #include <Misc.au3>
    Const $ADS_NAME_INITTYPE_GC = 3
    Const $ADS_NAME_TYPE_NT4 = 3
    Const $ADS_NAME_TYPE_1779 = 1
    ; DNS domain name.
    $oMyError = ObjEvent("AutoIt.Error", "ComError")
    $objRootDSE = ObjGet("LDAP://RootDSE")
    $objTrans = ObjCreate("NameTranslate")
    $objTrans.Init ($ADS_NAME_INITTYPE_GC, "")
    $objTrans.Set ($ADS_NAME_TYPE_1779, @LogonDomain)
    $objTrans.Set ($ADS_NAME_TYPE_NT4, @LogonDomain & "\" & @UserName)
    $strUserDN = $objTrans.Get ($ADS_NAME_TYPE_1779)
    $UserObj = ObjGet("LDAP://" & $strUserDN)
    DIM $firstname = $UserObj.FirstName
    DIM $lastname = $UserObj.LastName
    DIM $fullname = $UserObj.FullName
    DIM $department = $UserObj.Department
    DIM $streetaddress = $UserObj.get("streetAddress")
    DIM $city = $UserObj.get("l")
    DIM $state = $UserObj.get("st")
    DIM $zipcode = $UserObj.PostalCodes
    DIM $country = $UserObj.get("c")
    DIM $emailaddress = $UserObj.EmailAddress
    DIM $officenumber = $UserObj.TelephoneNumber
    DIM $mobilenumber = $UserObj.TelephoneMobile
    DIM $faxnumber = $UserObj.FaxNumber
    DIM $homeMDB = $UserObj.get("homeMDB")
    Dim $homeMDBtext = StringSplit($homeMDB, ",")
    Dim $mailboxname = StringTrimLeft($homeMDBtext[4], 3)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    MsgBox (0, "", "Test: "& $fullname)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $UserObj = ""
    $oMyError = ObjEvent("AutoIt.Error", "")
    ;COM Error function
    Func ComError()
    If IsObj($oMyError) Then
    $HexNumber = Hex($oMyError.number, 8)
    SetError($HexNumber)
    Else
    SetError(1)
    EndIf
    Return 0

    [/autoit][autoit][/autoit][autoit][/autoit]


    funktioniert und ich kann alle definierten Variablen abfragen, bzw. mir ausgeben lassen. Leider reicht mein Wissen über LDAP nicht aus, um daraus meine gewünschte Abfrage abzuleiten und in einer SQL-Tabelle abzuspeichern. Kann mir jemand dabei helfen !?

    Gruß

    Edit: Für LDAP Anfänger lohnender Link http://www.tecchannel.de/server/windows…agen_erstellen/

    2 Mal editiert, zuletzt von Cerverus (14. Oktober 2009 um 10:13)