LDAP loginname bzw. username herausfinden

  • hi
    ich verzweifele noch an ldap^^
    ich möchte den loginname bzw. username von einem user herausfinden.

    mittels dsquery und dsget (auf der console) habe ich das so hinbekommen:
    dsquery user -name A*|dsget user -samid

    wie kann ich das via ldap machen?

    habe im internet nix zum thema "ldap abfragen und username/loginname" gefunden.


    PS.: dsquery user -name A* <---- das habe ich ja schon via ladp hinbekommen, nur dsget user -samid noch nicht :)

    gruß
    GerhardSchr

    Einmal editiert, zuletzt von GerhardSchr (30. September 2009 um 14:36)

  • Habe nun das ldap element gefunden. Es heißt sAMAccountName

    aber ich verstehe immernochnicht, wie ich z.B.

    [autoit]

    ; _ADGetUserGroups
    ; the currently logged on user is a member of. Returns an array of Full DNs of the Group names that the user is immediately a member of
    ; with element 0 containing the number of groups.
    ; $user - optional -- SamAccountName of a user, defaults to locally logged on user

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

    Func _ADGetUserGroups(ByRef $usergroups, $user = @UserName)
    Local $oUsr

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

    $strQuery = "<LDAP://" & $strHostServer & "/" & $strDNSDomain & ">;(sAMAccountName=" & $user & ");ADsPath;subtree"
    $objRecordSet = $objConnection.Execute ($strQuery) ; Retrieve the FQDN for the logged on user
    $ldap_entry = $objRecordSet.fields (0).value
    $oUsr = ObjGet($ldap_entry) ; Retrieve the COM Object for the logged on user

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

    $usergroups = $oUsr.GetEx ("memberof")

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

    $oUsr = 0

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

    $count = UBound($usergroups)
    _ArrayInsert($usergroups, 0, $count)
    EndFunc ;==>_ADGetUserGroups

    [/autoit]


    umschreiben könnte (vorallem die ldap zeile...)


    schonmal vielen dank

    gruß
    GerhardSchr

  • Hi,

    1) "dsquery user -name A* -o samid" gibt Dir sofort die Sam Accounts.
    2) Wenn Du die LDAP Abfrage für den User schon hast, bekommst Du sehr wahrscheinlich DN Namen zurück.
    3) Suche nach ADFunctions.au3 und benutze Funktion _ADDNToSamAccountName : Returns the SamAccountName of an FQDN

    ;-))
    Stefan

  • vielen dank für diese info, das habe ich total übersehen THX

    _ADDNToSamAccountName benötigt doch den user in folgender form oder?:
    CN=Foo\, bar,OU=foobar,OU=Standorte,OU=BB-Benutzer,DC=STANDORT,DC=blubb,DC=de

    vielen dank

    GerhardSchr

  • Hi,
    jepp.

    Zitat

    CN=Foo\, bar,OU=foobar,OU=Standorte,OU=BB-Benutzer,DC=STANDORT,DC=blubb,DC=de

    Du meintest bestimmt:
    CN=Foo,OU=bar,OU=foobar,OU=Standorte,OU=BB-Benutzer,DC=STANDORT,DC=blubb,DC=de

    Stefan

  • Hi,

    also wenn ich _ADGetGroupMembers ausführe, bekomme ich fast ein korrektes Array zurück. Ein zerpflückter Name, da Sonderzeichen. In diesem fall wird ebenfalls ein \ vorangesetzt. Da Backslashs nicht vorkommen würde ich, bevor ich den DN an die Funktion übergebe, ein StringReplace ($string, "\","") drüber laufen lassen.

    Bei Leerzeichen im DN vergiss die Maskierung nicht!!!!

    ;-))
    Stefan

  • hallo
    hmm wenn ich

    [autoit]

    _ADDNToSamAccountName ("CN=Muster, Norman,OU=Friedhofstrasse,OU=Standorte,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de")

    [/autoit]

    benutzte kommt eine com fehlermeldung

    auch bei

    [autoit]

    _ADDNToSamAccountName ("CN=Muster,\ Norman,OU=Friedhofstrasse,OU=Standorte,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de")

    [/autoit]

    kommt sie -.-

    *g* was könnte jetzt noch falsch sein?

    danke im voraus
    GerhardSchr

  • Hi,

    Meiner Meinung nach liegt es an Deinem Benutzernamen:
    CN=Muster, Norman

    Keiner legt einen Benutzernamen mit Komma an. Ich weiss gar nicht ob das überhaupt geht.
    Üblicherweise sollte es so sein:

    _ADDNToSamAccountName ("CN=Muster Norman,OU=Friedhofstrasse,OU=Standorte,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de")

    Bei uns werden die User mit <Nachname> <Vorname> angelegt und Abfrage mit _ADDNToSamAccountName funktioniert ohne Probleme.

    ;-))
    Stefan

    Einmal editiert, zuletzt von ojo (1. Oktober 2009 um 14:12)

  • [autoit]


    _ADDNToSamAccountName (Chr (34) & "CN=Schulung4,OU=Arriba,OU=Gruppen,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de" & Chr (34))

    [/autoit]


    habe mal einen anderen user genommen, doch da geht es auch nicht

    schon komisch

    Muster, Normen ist auch nur der anzeigename....

  • Sry,

    hatte den Code mit den Chr wieder angepasst. Sieh Dir den Post nochmal an.

    Lass die mal wieder weg!!

    _ADDNToSamAccountName ("CN=Schulung4,OU=Arriba,OU=Gruppen,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de") müsste funktionieren, wenn
    Schulung04 in den OU's Arriba -> Gruppen -> BB-Benutzer in der Domänen ort.firma.de ist.


    ;-))
    Stefan

  • ok geht, jetzt muss ich nur nochmal schauen, wie das mit mit den anderen namen funktioniert...

    Danke schonmal soweit...


    PS.: dsquery und dsget kommt damit klar....es liegt wirklich an dem komma...mist

    //edit: ich denke, dass es ran liegt, dass er das komma als trennzeichen sieht, und dass es daher zum fehler kommt. man müsste irgendwie die _ADDNToSamAccountName funktion abändern, sodass er das komma "ordnungsgemäß" an das ldap schickt -.-

    eventuell mit Chr... Edit: ok Chr (44) geht nicht

    gruß
    GerhardSchr

    4 Mal editiert, zuletzt von GerhardSchr (1. Oktober 2009 um 15:31)

  • Hi,

    dass ist das Komma. Auch keine schlaue Idee Anmeldenamen mit Komma zu versehen.

    Das sollte funktionieren:

    _ADDNToSamAccountName ("CN=" & chr (34) & "Muster, Norman" & chr (34) & ",OU=Friedhofstrasse,OU=Standorte,OU=BB-Benutzer,DC=ORT,DC=FIRMA,DC=de")

    ;-))
    Stefan

  • hallo gerhardschr,

    was willst du denn überhaupt genau machen?
    ich nehme an ihr habt einen domaincontroller (windows 2003) ?
    den USERNAME bekommst du hier auch mit @username!

    alles andere mit der adfunctions.au3!

    gruß gmmg

  • hallo gerhardschr,

    was willst du denn überhaupt genau machen?
    ich nehme an ihr habt einen domaincontroller (windows 2003) ?
    den USERNAME bekommst du hier auch mit @username!

    alles andere mit der adfunctions.au3!

    gruß gmmg

    wenn du den beiträge gelesen hast, dann weißt du ja, was mein problem ist, und dann weißt du auch, dass mir @username garnix bringt bei meinem problem...