通过PHP添加用户:LDAP

San*_*der 1 php ldap active-directory

我有这个代码:

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));
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

警告:ldap_add()[function.ldap-add]:添加:服务器不愿意执行

当我遗漏$info['useraccountcontrol'] = 512;部分时,它会添加帐户,但它被禁用..

我从两台服务器上的日志记录中得到了这个:

内部事件:LDAP服务器返回错误.

附加数据错误值:0000052D:SvcErr:DSID-031A11E5,问题5003(WILL_NOT_PERFORM),数据0

我的工作:

  • Windows Server 2008 Active Directory(不是R2)和Windows Server 2003
  • PHP 5.3.5
  • 正常的LDAP连接,而不是LDAPS,因为我已经放弃尝试获得这项工作..

我怎样才能得到它像这样,该用户禁止,也没有要改变密码时,首测吗?

BW6*_*W67 5

我也有这个问题(甚至通过LDAPS连接).当我分三个步骤(首先添加帐户,然后设置密码,然后启用帐户),它工作.

可能你可以结合前两个或最后两个步骤,但我没有测试这个.