Zugriff auf AD bzw. LDAP und auslesen in welcher OU ein User ist????

  • VBScript

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Mini25.

    Zugriff auf AD bzw. LDAP und auslesen in welcher OU ein User ist????

    Hallo Leute,



    steig da echt nicht mehr durch ;(

    Ich möchte aus dem AD auslesen, in welcher OU ein User ist um danach zu bestimmen, mit welchem Fileserver sein Netzlaufwerk verbunden ist, dabei habe ich es schon geschaft mit dem AD kontakt aufzunehmen, aber weder ist mir die Logik der Scripte geläufig, wie diese eine spezielle OU abfragen, noch wie ich diese dann korrekt zurückgebe.

    Hat jemand eine gute Erklärung, wie das abläuft, oder kann mir vielleicht ein Bsp. geben?

    Hier mal die theoretischen Werte.

    Domänencontroller: controller.test.firma also doch dc=controller, dc=test, dc=firma
    Die OU in der die User sind wären dann Domänencontroller/Firma/Standort/User/Usernamen also ou=User, ou=Standort, ou=Firma
    gesamter Pfad "<LDAP://ou=User,ou=Standort,ou=Firma,dc=controller,dc=test,dc=firma>;

    Ist das korrekt? Kann mir irgned wer erklären, wie ich jetzt per VBS zurückgeben kann, wenn User test sich anmeldet, dass er prüft in welcher OU des Standorts er ist, damit ich entsprechend das Standorteigene Netzlaufwerk verbinden kann?



    Vielen Dank!!! :)
    Hallo

    Mittels ADO kannst du eine Abfrage an dein AD absetzen, welche dir den Distinguished Name (= LDAP-Pfad zum User) des Users zurückgibt. Diesen zerlegst du dann in seine Bestandteile und schwups hast du den Namen der gesuchten OU. Das Ganze sieht etwa so aus:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Function GetUserOU (ByVal strUserName)
    3. Dim objCommand
    4. Dim objConnection
    5. Dim rsUser
    6. Dim strDomain
    7. Dim strValues
    8. strDomain = GetObject ("LDAP://rootDSE").Get ("defaultNamingContext")
    9. Set objCommand = CreateObject ("ADODB.Command")
    10. Set objConnection = CreateObject ("ADODB.Connection")
    11. objConnection.Provider = "ADsDSOObject"
    12. objConnection.Open = "Active Directory Provider"
    13. Set objCommand.ActiveConnection = objConnection
    14. objCommand.Properties ("Page Size") = 1000
    15. objCommand.CommandText = "<LDAP://" & strDomain & ">;(&(objectCategory=group)(sAMAccountName=" & strUserName & "));distinguishedName;subtree"
    16. Set rsUser = objCommand.Execute
    17. strValues = Split (rsUser ("distinguishedName"), ",") 'z.B. CN=TestUser,OU=User,OU=Standort,OU=Firma,DC=test,DC=firma
    18. Set rsUser = Nothing
    19. Set objCommand = Nothing
    20. objConnection.Close
    21. Set objConnection = Nothing
    22. GetUserOU = Right (strValues (2), Len (strValues (2)) - InStr (strValues (2), "="))
    23. End Function


    HTH,
    Bruno
    Und wie würde da der Code lauten, wenn ich die im AD hinterlegte Emailadresse, Vorname und Nachname des aktuell angemeldeten Users ermitteln möchte. Also beispielsweise in so einem Skript das nach dem Login ausgeführt wird?

    Wäre echt super, wenn du mir da auch helfen könntest

    Ich habe da etwas von LDAP gelesen, kennt sich da jemand aus? Ich kenne mich da nicht aus.

    Mfg
    Mini25

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mini25“ ()