【问题标题】:Creating user from php on active directory在活动目录上从 php 创建用户
【发布时间】:2012-12-27 10:12:06
【问题描述】:

我有以下代码:

<?php
$ldapConn = ldap_connect('ldap://XXX.YYY.WWW.NNN:389');
ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);

ldap_bind( $ldapConn, 'CN=Administrador,CN=Users,DC=XXX,DC=YYY', 'PASWD');

$dn_user='CN=testLDAP,OU=empleados,OU=usuarios_XXX,DC=XXX,DC=YYY';;

$ldaprecord['cn'] = "testLDAP";
$ldaprecord['givenName'] = "testLDAP";  
$ldaprecord['sn'] = "testLDAP";
$ldaprecord['sAMAccountName'] = "testLDAP";
$ldaprecord['UserPrincipalName'] = "testLDAP@XXX.com";
$ldaprecord['displayName'] = "testLDAP";
$ldaprecord['name'] = "testLDAP";
$ldaprecord['UserAccountControl'] = "544";
$ldaprecord['objectclass'][0] = 'top';
$ldaprecord['objectclass'][1] = 'person';
$ldaprecord['objectclass'][2] = 'organizationalPerson';
$ldaprecord['objectclass'][2] = 'user';
$ldaprecord['mail'] = "lkl@fh.com";

ldap_add($ldapConn, $dn_user, $ldaprecord);
ldap_unbind($ldapConn);  
?>

使用此代码,我可以在 Active Directory 上创建一个用户,但如果我使用“Active Directory 用户”MMC 来定位此脚本创建的用户,我无法在我创建它的 OU 上看到该用户,但是我可以从 ADSI Edit 在同一个 OU 中看到它,而我在“Active Directory 用户”MMC 中看不到它,我可以在“Active Directory 用户”MMC 中的搜索选项中搜索用户。

我也不能以普通用户身份登录(手动设置密码)

可能是 ldaprecord 中的错误或缺少属性?

【问题讨论】:

  • 是的,这可能是错误或缺少属性。你为什么要问?你有一个特定的错误或财产?你知道哪些属性必须存在?您能否提供一个示例,说明正确用户的外观如何?你的用户是什么样子的?
  • 我不知道丢失财产的错误在哪里,我的问题是关于这个。我无法提供正确的用户必须看起来像哪些属性,因为我不知道。
  • 那你是怎么写那段代码的呢?通过猜测?
  • 不是真的,我知道一些参数和结构但不是全部,我正在寻找一些运行类似的东西并且知道错误在哪里。
  • 好吧,我强烈建议您先询问规格。并不是说您也可以从工作代码中读出规范,但是更直接地询问具体的(现有的)而不是关于很大程度上未定义的“错误”(特别是如果不是很明显,比如可能只是您的缺失参数设置需要但不是其他任何人)。

标签: php windows active-directory


【解决方案1】:

我又试了一次,现在它起作用了,我真的不知道为什么。 我怀疑 mmc 控制台有什么问题,代码是一样的,它可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多