Anmeldung an Active Directory funktioniert nicht

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Anmeldung an Active Directory funktioniert nicht

    Hallo,

    ich habe ein kleines Script erstellt, um aus unserer Active Directory nach Eingabe eines Computernamens bei diesem ein bestimmtes Attribut auszulesen und anzuzeigen.
    Das Script an sich funktioniert einwandfrei und gibt zuverlässig den gewünschten Wert aus. Allerdings nur, wenn man es von einem PC ausführt, bei dem man schon mit einem User-Account angemeldet ist, der für die AD berechtigt ist. Ist man mit einem "normalen" Account angemeldet, funktioniert es auch mit einer vorgeschalteten Batch, in der man das Script mit "runas" und den entsprechenden berechtigten Anmeldedaten aufruft.
    Nun wollte ich gerne diese Anmeldedaten schon in das Original-Script mit einbauen, um die Batch zu sparen, und habe dafür die folgenden vier Zeilen hinzugefügt:

    objConnection.Properties("User ID") = "<Domain>\UxxxxxxS"
    objConnection.Properties("Password") = "xxxxxxxx"
    objConnection.Properties("Encrypt Password") = TRUE
    objConnection.Properties("ADSI Flag") = 3

    Insgesamt sieht dieses Script also so aus:

    Visual Basic-Quellcode

    1. On Error Resume Next
    2. Dim WSObjekt
    3. WSObjekt = InputBox("WS-Nr. eingeben (ohne -LSG)") & "-lsg"
    4. Const ADS_SCOPE_SUBTREE = 2
    5. Set objConnection = CreateObject("ADODB.Connection")
    6. objConnection.Provider = "ADsDSOObject"
    7. objConnection.Properties("User ID") = "<Domain>\UxxxxxxS"
    8. objConnection.Properties("Password") = "xxxxxxxx"
    9. objConnection.Properties("Encrypt Password") = TRUE
    10. objConnection.Properties("ADSI Flag") = 3
    11. objConnection.Open "Active Directory Provider"
    12. Set objCommand = CreateObject("ADODB.Command")
    13. objCommand.ActiveConnection = objConnection
    14. objCommand.Properties("Page Size") = 100
    15. objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    16. objCommand.CommandText = _
    17. "SELECT ADsPath FROM 'LDAP://OU=Computers,OU=LSG,OU=Company,DC=xxx,DC=yyy,DC=de' WHERE " _
    18. & "objectCategory='computer' AND Name='" & WSObjekt & "'"
    19. Set objRecordSet = objCommand.Execute
    20. objRecordSet.MoveFirst
    21. strADsPath = objRecordSet.Fields("ADsPath").Value
    22. Set objComputer = GetObject(strADsPath)
    23. varDisplay = objComputer.Get("attrxyz")
    24. MsgBox varDisplay,0,WSObjekt


    Lasse ich die vier Anmeldezeilen weg, funktioniert das Script wie oben beschrieben, aber mit diesen Zeilen bekomme ich das Script einfach nicht zum Laufen. Es erscheint jedesmal nur eine leere MsgBox, Wenn ich die Zeile "On Error Resume Next" weglasse, kommt die Fehlermeldung:

    ---------------------------
    Windows Script Host
    ---------------------------
    Skript: C:\Users\Uxxxxxx\Documents\Get.vbs
    Zeile: 29
    Zeichen: 1
    Fehler: Die Verzeichniseigenschaft wurden nicht im Cache gefunden.

    Code: 8000500D
    Quelle: Active Directory

    ---------------------------
    OK
    ---------------------------

    Also in der Zeile "varDisplay = objComputer.Get("attrxyz")", bei der Abfrage des Attributes, bricht er ab. Ich habe in den Anmeldezeilen schon alle möglichen Varianten probiert, Username mit und ohne Domain, in der Form Uxxxxxx@xxx.yyy.de, als Distinguished Name, mit und ohne Encryption und mit den ADSI-Flags 1, 2 und 3, nichts funktioniert.

    Kann mir hier bitte jemand helfen und mir sagen, ob und was da falsch ist oder vielleicht noch fehlt???
    Vielen Dank!

    VG
    Frank

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „FraWag“ ()

    Bitte färbe aus Gründen der Lesbarkeit deinen Code (auch in Zukunft) mit einem BBCode ein, siehe [Forum] Welche BBCodes (Tags) gibt es hier im Forum zum Einfärben von Quellcodes (Syntax-Highlighting)?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum