Главная > Технологии > Протокол Поиск группы в LDAP Active Directory
Имеем. Лес доменов на базе Win2k/Win3k. Универсальную группу
"AccessGroup" в корневом домене. Много пользователей во всех доменах леса. Все замечательно работает пока в группе меньше 1000 членов. Как
только число мемберов превышает 1000 (для Win2k3 - 1500), атрибут "member"
приезжает пустой. Вместо него приезжает атрибут "member;Range=0-999" в
котором содержатся первые 1000 членов группы. А как быть с остальными? Поиск пользователей в Active Directory (W2000/2003 domain) через PHP+LDAP
$servers = array( "DC=ngd, DC=ru", "DC=kgp, DC=ngd, DC=ru", "DC=ztgp, DC=ngd, DC=ru", "DC=bmts-2, DC=ngd, DC=ru" );
$ip_addr = array( "10.52.1.100", "10.52.233.1", "10.52.234.1", "10.52.236.1" );
$person = iconv ('CP1251','UTF-8', $sql_seek );
$fields = array("name", "mail", "telephonenumber", "description");
$ldap_port = "389";
$filter = "(|(name=*$person*))";
$ldap_user ="***";
$ldap_pass = "***";
$i = 0;
while ( isset($servers[$i]) && isset($ip_addr[$i]) )
{
if ( $connect = ldap_connect( $ip_addr[$i] ) )
{
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
$bind = ldap_bind($connect, $ldap_user, $ldap_pass);
$read = ldap_search($connect, $servers[$i], $filter, $fields );
if ( $info = ldap_get_entries($connect, $read) )
{
for( $ligne = 0; $ligne<$info["count"]; $ligne++)
{
$name = @iconv( 'UTF-8', 'CP1251', $info[$ligne][$fields[0]][0] );
$email = @$info[$ligne][$fields[1]][0];
$phone = @$info[$ligne][$fields[2]][0];
$desc = @iconv('UTF-8', 'CP1251', $info[$ligne][$fields[3]][0]);
if ( isset($email) )
$result .= ' |