2013-08-05 61 views
0

我的問題是,我有一個AD設置爲這樣:LDAP返回在不同的組中的所有用戶,AD與PHP


--root
  --depot一個
      --computers
      --users
  --depot乙
     個--computers
      --users

我目前正在開發的公司內部網,我需要得到所有在所有這些子目錄的用戶,讓周圍的人公司通過找人尋找他們。

問題是我的ldap_search目前沒有搜索子樹。因此目前只有根聯繫人正在返回。我的代碼如下:

$ldap_connection = ldap_connect($ldap_host, $ldap_port); 
if (FALSE === $ldap_connection){ 
die("<p>Failed to connect to the LDAP server</p>"); 
} 

ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set  LDAP protocol version'); 
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); // We need this for doing an LDAP search. 

if (TRUE !== ldap_bind($ldap_connection, $ldap_username, $ldap_password)){ 
die('<p>Failed to bind to LDAP server.</p>'); 
} 

//------------------------------------------------------------------------------ 
// Get a list of all Active Directory users. 
//------------------------------------------------------------------------------ 
$ldap_base_dn = 'DC=yearsleygroup,DC=net'; 
$name= jo; 
$search_filter = "(|(mail=*@belfield.co.uk)(mail=*@yearsley.co.uk)(mail=*@icepak.co.uk)(mail=*@luckyred.co.uk))"; 
$justthese = array("cn", "physicaldeliveryofficename", "telephonenumber", "mail"); 
$result = ldap_search($ldap_connection, $ldap_base_dn, $search_filter,$justthese); 
$entries = ldap_get_entries($ldap_connection, $result); 

沒有什麼會跳到我爲什麼會發生這種情況。我目前的設置是IIS上的PHP 5.3,後臺是AD。

如何返回這些不同OU的用戶,是執行單獨的ldap查詢然後連接結果然後搜索的唯一方法?

P.s. ldap新手,相對較新的PHP,但瞭解所有的基本概念。 歡迎任何幫助,如果我沒有正確地問,請指出。

+0

您使用的是adLDAP插件還是PHP的本機支持?我已經使用'adLDAP'超過4年了,並且非常確定它有一個簡單的__true/false__標記遞歸的文件夾結構支持。檢查這個:http://adldap.sourceforge.net/wiki/doku.php?id=documentation_folder_functions – DevlshOne

+0

你有多少物品回來?你沒有達到(標準默認值)每個查詢限1000條記錄嗎?如果您有權訪問「Active Directory用戶和計算機」控制檯,請在那裏嘗試您的搜索查詢,看看會發生什麼。我發現你的代碼沒有明顯的問題,你似乎做得很對。另外,如果你計劃在AD中做更多的事情,你可以考慮使用一個庫,如[AD-X](https://github.com/Alaneor/AD-X)。然而,這可能不能解決這個問題... –

+0

嗨,我會嘗試adLDAP謝謝你,也感謝你的極限我相信這是我的問題,最後一件事將是爲什麼AD返回電話號碼有時,但如果我改變了搜索參數,它有時不會有幫助,即使它只是一些主題? –

回答

0

限制查詢是什麼讓我相信這不是搜索subroots時,它實際上只是無法得到那麼遠,由於到了極限。因爲這是爲了一個目錄我只是讓搜索參數有更多的深度,所以他們返回較少。

相關問題