2016-02-01 87 views
0

我有一個PHP腳本可以工作,但我需要將其更改爲在此示例中使用AD帳戶(samaccountname)而不是CN;使用samaccountname修改AD LDAP對象

<?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是用戶的描述性名稱,我是否運氣不好?

回答

1

您必須爲ldap_modify指定要更改的帳戶的專有名稱(DN)。這是沒有辦法的。

如果您只知道sAMAccountName,那麼您可以先搜索該帳戶的域名,然後從結果中獲取distinguishedName屬性。

要搜索,使用過濾器使用ldap_search「(sAMAccountName賦=用戶名)」

+0

這是什麼樣的我想。謝謝,Gabriel,我很欣賞這個輸入。 – Kimomaru