2015-09-11 83 views
0

我正在使用PHP Adldap2庫(https://github.com/Adldap2/Adldap2)開發一個項目,我需要從Active Directory檢索特定OU中的子OU列表。使用ADLDAP2檢索特定OU中的子OU列表

這就是我想:

$ad->search() 
    ->whereEquals(
     ActiveDirectory::OBJECT_CATEGORY, 
     ActiveDirectory::ORGANIZATIONAL_UNIT_LONG 
    ) 
    ->whereEndsWith('dn', 'OU=myou,DC=mycompany,DC=com') 
    ->get(); 

雖然第一過濾作品和檢索所有的OU,第二個沒有,並返回一個空數組。我也嘗試使用'distinguishedname'而不是'dn'whereEndsWith,結果相同。

這怎麼辦?

回答

0

做一些研究和實驗後,我想出了這個代碼:

$config = Adldap::getConfiguration(); 
$baseDn = new Adldap\Objects\DistinguishedName($config->getBaseDn()); 
$departmentsDn = $baseDn->addOu('myou'); 
$search = Adldap::search()->setDn($departmentsDn->get()); 
$entries = $search->whereEquals(ActiveDirectory::OBJECT_CATEGORY, ActiveDirectory::ORGANIZATIONAL_UNIT_LONG)->get(); 

我不知道這是否是最好的解決方案,但它的工作原理。 PS:我正在使用Laravel adldap外觀,這就是爲什麼adldap調用是靜態的。