Получение списка подчиненных подразделений в определенном подразделении с использованием ADLDAP2

Я работаю над проектом, использующим библиотеку PHP Adldap2 ( https://github.com/Adldap2/Adldap2), и мне нужно получить список подразделений в определенном подразделении из Active Directory.

Вот что я попробовал:

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

В то время как первый фильтр работает и извлекает все OU, второй - нет и возвращает пустой массив. Я также пытался использовать 'distinguishedname' вместо 'dn' в whereEndsWithс тем же результатом.

Как это может быть сделано?

1 ответ

После некоторого исследования и экспериментов я придумал этот код:

$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 звонки являются статическими.

Другие вопросы по тегам