Loï*_*HEL 9 php active-directory
我有一个工作脚本,允许我解锁用户帐户(通过将lockouttime AD属性设置为0)这样的事情:
$entry["lockouttime"][0]=0;
$mod=ldap_mod_replace($ds,$dn,$entry)
Run Code Online (Sandbox Code Playgroud)
现在我想做相反的事情:锁定帐户.我已经读过lockouttime是一个系统属性,而active目录不允许我们将其值设置为0.
所以我试图用用户帐户和密码错误绑定到服务器,但这似乎不起作用.
for($i=0;$i<10;$i++){
ldap_bind($ds,$dn, "theWrongPasswd");
}
Run Code Online (Sandbox Code Playgroud)
运行此将显示此错误
Warning: ldap_bind(): Unable to bind to server: Invalid credentials
Run Code Online (Sandbox Code Playgroud)
但该帐户仍然可以解锁.
你知道我怎么能这样做吗?提前致谢.
查看http://support.microsoft.com/kb/305144表明,普通帐户的 UAC 值为 512。
锁定 0x0010 16 NORMAL_ACCOUNT 0x0200 512
我相信将其设置为528(锁定+普通帐户)将锁定用户帐户。
$entry["userAccountControl"][0]=512;
$mod=ldap_mod_replace($ds,$dn,$entry);
Run Code Online (Sandbox Code Playgroud)