Я пытаюсь разблокировать учетные записи Active Directory, когда пользователи 3 раза ввели неверный пароль и учетная запись заблокирована. Я нашел некоторые решения, но они не работают. Прежде всего, «lockoutTime», этот атрибут - последний раз, когда пользователь был заблокирован. Не сбрасывается при разблокировке аккаунта. «UserAccountControl» всегда показывает «NORMAL_ACCOUNT» (потому что некоторые решения здесь или на других форумах говорили, что я могу изменить статус для разблокировки).
В PSO позволяет вводить неправильный пароль 3 раза. Поэтому я взял Attibute "badPwdCount". Теперь я могу правильно показать все заблокированные учетные записи.
Но теперь я хочу разблокировать его с помощью php. На первой странице ищите заблокированные аккаунты и показывает его в виде списка. У каждого предмета есть кнопка для разблокировки. Я могу перенести переменную username на вторую страницу, чтобы программа знала, какую учетную запись нужно разблокировать.
Я хочу попытаться установить для «badpwdcount» значение 0, но ничего не происходит:
(Вторая страница )
session_start();
$aduser= $_GET['aduser'];
$ds=ldap_connect("192.168.0.17");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
if ($ds) {
$base_dn = "DC=testdomain,DC=local";
$r=ldap_bind($ds, "admin@testdomain.local", "Test12345");
$sr=ldap_search($ds, $base_dn, ("samaccountname=" . $aduser));
$info = ldap_get_entries($ds, $sr);
for ($i=0; $i<$info["count"]; $i++) {
if ($info[$i]["badpwdcount"][0] == 3){
$info["badpwdcount"][0] = '0';
$mod=ldap_mod_replace($ds,$base_dn,$info);
}
else {
echo "No Connection";
}
}
}
ldap_close($ds);