active directory -通过PHP添加用户:LDAP


active directory - Adding user via PHP:LDAP

我有这样的代码:

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