我有这段代码:
function makeUser() {
$info['cn'] = "Test User";
$info['sn'] = "User";
$info['mail'] = "test@localhost";
$info['objectclass'][0] = "Person";
$info['objectclass'][1] = "User";
$info['userpassword'] = "{MD5}".base64_encode(pack("H*",md5('Password1!')));
$info['useraccountcontrol'] = 512;
var_dump(ldap_add($this->connection, "CN=Test User,OU=Users,DC=domain,DC=local", $info));
}
这给了我这个错误:
警告:ldap_add()[function.ldap-add]:添加:服务器不愿意执行
当我遗漏$info['useraccountcontrol'] = 512;
部分时,它会添加帐户,但会被禁用..
我从两台服务器上的日志记录中得到了这个:
内部事件:LDAP服务器返回错误。
其他数据错误值:0000052D:SvcErr:DSID-031A11E5,问题 5003(WILL_NOT_PERFORM),数据0
我的工作:
我该如何理解,用户不已停用,并且首次登录时不是否必须更改密码?
答案 0 :(得分:5)
我也有这个问题(甚至通过LDAPS连接)。当我分三个步骤(首先添加帐户,然后设置密码,然后启用帐户),它工作。
可能你可以合并前两个或最后两个步骤,但我没有对此进行测试。
答案 1 :(得分:2)
就Active-directory而言,密码不在'userpassword'中,但在'unicodePwd'中,您在this other Stckoverflow question中有一个示例。我认为您需要使用LDAPS。