我有这样的代码:
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]: Add: Server is不愿执行
当我省略$info['useraccountcontrol'] = 512;
部分时,它添加了帐户,但它是禁用的…
我从两个服务器的日志记录中得到这个:
Internal event: The LDAP server returned an error.
附加数据错误值:0000052D: SvcErr: DSID-031A11E5, problem5003 (WILL_NOT_PERFORM),数据0
I work on:
- Windows Server 2008 Active Directory(非R2) &Windows Server 2003 PHP 5.3.5
- 正常LDAP连接,而不是LDAPS,因为我已经放弃了试图得到那份工作..
我怎么能得到它这样,用户是不禁用和不必须更改密码时,第一次登录?
我也遇到过这个问题(甚至通过LDAPS连接)。当我分三步完成时(首先添加帐户,然后设置密码,然后启用帐户),它成功了。
您可以将前两步或后两步合并,但我没有对此进行测试。
就Active-directory而言,密码不是在'userpassword'中,而是在'unicodePwd'中,您在另一个Stckoverflow问题中有一个示例。我认为你需要使用LDAPS