我有以下代码用于修改Active Directory中的详细信息:
function updateActiveDirectory($user, $first, $last, $mail, $number, $title, $service, $team)
{
$server = "DC-1";
$unit = "OU=Staff,OU=Users,DC=rugby,DC=internal";
$ds = ldap_connect($server);
if(!$ds)
{
return "Cannot connect to LDAP server";
}
$bind = ldap_bind($ds, "DOMAIN\Administrator", "PASSWORD");
if(!$bind)
{
return "Couldn't bind to LDAP server";
}
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$sr = ldap_search($ds, $unit, "(sAMAccountName={$user})");
$ent= ldap_get_entries($ds, $sr);
$userdata = array();
$userdata["cn"][0]=$first. " ".$last;
$userdata["sn"][0]=$last;
$userdata["mail"][0]=$mail;
$userdata["telephonenumber"][0]=$number;
$userdata["company"][0]=$service;
$userdata["department"][0]=$team;
$userdata["title"][0]=$title;
$name = $ent[0]["dn"];
ldap_modify($ds, $name, $userdata);
}
我收到警告:
ldap_modify():修改:RDN上不允许进行该操作
但无法在线找到有关此问题的任何信息。这里有什么问题?
您不能CN
像那样修改属性。该属性形成RDN。如果需要修改,则应使用ldap_rename()函数:
$rdn = 'cn='.ldap_escape($first." ".$last, null, LDAP_ESCAPE_DN);
ldap_rename($ds, $ent[0]["dn"], $rdn, null, true);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句