使用 samaccountname 修改 AD LDAP 对象


Modifying AD LDAP objects with samaccountname

我有一个可以工作的 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 是用户的描述性名称,我是否不走运?

您必须

ldap_modify提供要更改的帐户的可分辨名称 (DN)。这是没有办法的。

如果您一开始只知道 sAMAccountName,那么您可以先在域中搜索帐户,然后从结果中获取 distinctedName 属性。

要搜索,请使用ldap_search使用过滤器"(sAMAccountName=username)"