我有一个可以运行的PHP脚本,但我需要在此示例中将其更改为使用AD帐户(samaccountname)而不是CN;
<?php
$base_dn="CN=Peter Parker,OU=Subcontainer,OU=Subcontainer,OU=Container,
DC=domain,DC=com";
$ldapconn = ldap_connect("host.domain.com") or die("Could not connect to LDAP server.");
if ($ldapconn)
{
$ldapbind = ldap_bind($ldapconn, $ldapusername, $ldappassword);
if ($ldapbind)
{
echo "LDAP bind successful ...";
}
else
{
echo "LDAP bind failed ...";
}
}
$newinfo['ipphone']="555";
ldap_modify($ldapconn,$base_dn,$newinfo);
?>
目的是为AD中的用户修改ipphone对象,但我无法使用CN,因为此输入对于任务来说不够独特。如果帐户的基本DN中的CN是用户的描述性名称,我运气不好吗?
答案 0 :(得分:1)
您必须为ldap_modify提供您要更改的帐户的专有名称(DN)。没有办法解决这个问题。
如果您刚开始只知道sAMAccountName,那么您可以先在域中搜索该帐户,然后从结果中获取distinguishedName属性。
要进行搜索,请使用过滤器“({sAMAccountName = username)”3>使用ldap_search