PHP:如何锁定活动目录用户帐户?

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)

但该帐户仍然可以解锁.

你知道我怎么能这样做吗?提前致谢.

Pez*_*kow 0

查看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)