User im AD entsperren

  • Hallo liebe Forengemeinde,

    ich bin erst seit 3 Tagen dabei und weiß jetzt schon, dass Autoit in Zukunft sehr oft zum Einsatz kommen wird  :thumbup:


    Zum Thema:
    Uns steht eine Exchange Migration bevor. Bei unseren Tests stellt sich heraus, dass das Domänenkonto des migrierten Users zu einem Zeitpunkt immer gesperrt wird. Da die Entsperrungen bei 380 Usern viel Aufwand erzeugen würden, möchte ich das ganze automatisiert in mein Script einbinden. Mein Script beinhaltet einige Konfigurationen von Outlook, die hier nicht weiter relevant sind.


    Ich habe hier im Forum bereits das große Werk, die Active DirectoryUDF , von Water bestaunen dürfen (v. 1.4.1.1).
    Auch den Thread von KlauPe zum Thema AD entsperren, etc. habe ich gelesen. Ich verstehe dort allerdings nur Flughafen.
    Das Beispielscript (_AD_UnlockObject.au3) funktioniert bei mir leider nicht.
    Weiteres konnte ich mit der SuFu leider nicht finden.


    Fortschritt und Ziel:
    Ich habe es immerhin schon geschafft mich erfolgreich mit dem Active Directory zu verbinden. *Yaaay*  :whistling:
    Ziel ist es den User automatisiert zu entsperren. Den AD username lese ich einfach mit @UserName aus.

    Ich würde mich sehr über Hilfe freuen, da wir bereits übernächste Woche mit der Migration anfangen und mein Script nach der Sperrung nicht sonderlich viel nützt.


    Besten Dank.


    Viele Grüße
    ~ino

    Einmal editiert, zuletzt von inopia (28. August 2014 um 22:26)

  • Welche Fehlermeldung gibt das Beispielskript aus?

  • Zitat

    Den AD username lese ich einfach mit @UserName aus.

    Das funktioniert nicht. @UserName gibt den aktuell angemeldeten Benutzer aus, nicht die Konten aus dem AD.

    Um es einfach zu halten: Zum Entsperren von Usern gibt es in der UDF einen einfachen Weg:

    Spoiler anzeigen
    [autoit]


    $aUserLocked = _AD_GetObjectsLocked()
    ;Anzeigen der deaktivierten Accounts im Array
    _ArrayDisplay($aUserLocked)

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

    ; So lange reaktiveren, bis die Liste abgearbeitet ist (UBound = Anzahl der Einträge.
    ; Minus eins, da der erste Eintrag die Anzahl der Accounts im Array darstellt und
    ; daher nicht mitgerechnet wird.)
    For $c_obj = 1 To UBound($aUserLocked) - 1
    _AD_EnableObject($aUserLocked[$c_obj])
    Next

    [/autoit]

    P.S.: ACHTUNG: Dieser Befehl aktiviert ALLE deaktivierten Konten im AD! Wenn du die Accounts vorher in eine OU verschiebst oder sie bereits dort liegen, kannst du den _AD_GetObjectsLocked() auch um die OU erweitern. Schau dir mal die Hilfe hierzu an.

  • Danke für die Antworten.

    water:
    Ich bekomme folgenden Fehler, egal ob das Konto gesperrt ist oder frei.
    [Blockierte Grafik: http://i.imgur.com/0040y3Z.png]

    EDIT: Habe den Fehler über google gefunden -> Keine Schreibrechte ... ich habe auch nur in einer von vielen OUs Schreibrechte. Kann ich die spezifizieren?


    DasIch:
    Der UserName ist aber der Konto/Anmeldename, den ich auch im AD Suche, wenn ich entsperre.
    Danke für das Script. Leider lässt sich dies in meinem Kontext nicht verwenden, ich möchte ja gezielt den angemeldeten User entsperren und nicht alle.

    EDIT: Wie man im Beitrag unten sieht, habe ich kapiert, dass ich mit meiner Äußerung falsch lag. Man braucht scheinbar den FQDN.

    3 Mal editiert, zuletzt von inopia (28. August 2014 um 21:42)

  • Ich bin leider grad nicht im Office, aber könnte folgender Ansatz funktionieren?

    [autoit]

    #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y

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

    #include <AD.au3>
    #include <WindowsConstants.au3>

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

    _AD_Open(X, Y)
    Global $sFQDN = _AD_SamAccountNameToFQDN()
    _AD_UnlockObject($sFQDN)
    _AD_Close()

    [/autoit]
  • _AD_UnlockObject funktioniert mit SamAccountName und FQDN.

  • Ich konnte nicht wiederstehen und bin nochmal los...

    Das Script funktioniert Prima. Danke für den Hinweis mit dem SamAccountName. Ich kann jetzt diesen mit @UserName aufrufen und entsperren.
    Das mit dem AD Error hat sich auch geklärt. Der Account den ich dafür angelegt habe war tatsächlich nicht berechtigt.

    Manchmal hilft es echt, das Problem runterzuschreiben um auf den richtigen Pfad zu gelangen.

    Vielen Dank für Eure Beiträge und Besten Dank water für diese wunderbare UDF!!  :thumbup:


    Gute Nacht  :D


    /solved

  • :)