Ich habe ein funktionierendes Skript, mit dem ich ein Benutzerkonto entsperren kann (indem ich das Lockouttime AD-Attribut auf 0 setze) etwas wie das:
%Vor%Jetzt möchte ich das Gegenteil tun: den Account sperren. Ich habe gelesen, dass lockouttime ein Systemattribut ist und Active Directory es uns nicht erlaubt, seinen Wert auf etwas anderes als 0 zu setzen.
Ich versuche also, mich mit dem Benutzerkonto und einem schlechten Passwort an den Server zu binden, aber das scheint nicht zu funktionieren.
%Vor%das zeigt diesen Fehler
%Vor%aber das Konto ist immer noch entsperrt.
Haben Sie eine Idee, wie ich das machen kann? Vielen Dank im Voraus.
LDAP-Bindungsversuche zählen nicht als Anmeldeversuche. Verwenden Sie APIs wie LogonUser und CreateProcessWithLogon Anmeldeversuche generieren.
Das Sperren des Benutzers über das userAccountControl
LOCKOUT
Flag ( 0x0010
) ist nicht möglich . Dieses Flag steht mit der Kennwortrichtlinie des AD in Verbindung und wird vom System gesetzt, wenn zu viele Anmeldeversuche unternommen werden. Ich habe es selbst ausprobiert: Nach dem Setzen der Flagge und dem Commit der Änderungen an den AD änderte sich der Wert nicht - es wurde keine Exception geworfen.
Das Deaktivieren eines Kontos wird wahrscheinlich dasselbe erreichen, was Sie tun möchten. Dazu müssen Sie das ACCOUNTDISABLE
Flag ( 0x0002
) setzen.
Dies ist die Liste aller UAC-Flags: Ссылка
Wenn Sie Ссылка aufrufen, wird davon ausgegangen, dass ein normales Konto einen Wert von 512 für seine Benutzerkontensteuerung hat.
LOCKOUT 0x0010 16 NORMAL_ACCOUNT 0x0200 512
Ich glaube, wenn Sie es auf 528 setzen (lockout + normal account), wird das Benutzerkonto gesperrt.
%Vor%Ich empfehle, fehlerhafte Bindungsversuche selbst zu zählen, indem Sie die Variable a session verwenden und das Konto auf dieser Grundlage selbst sperren.
Um das Konto zu sperren, müssen Sie die Benutzerkontensteuerungsoptionen kumulieren und das UserAccountControl-Attribut festlegen.
Verweise Ссылка , Sperren wäre:
%Vor%Der Wert 514 stammt von NORMAL_ACCOUNT (512) + ACCOUNTDISABLE (2).
Das Entsperren wäre ein Wert von NORMAL_ACCOUNT, 512.
Endgültiger Code:
%Vor%Versuchen Sie Folgendes:
Entsperren:
%Vor%Zum Sperren:
%Vor%Aktivieren:
%Vor%Zum Deaktivieren:
%Vor%Tags und Links php active-directory