列出组中的LDAP组

时间:2015-08-23 21:20:56

标签: php active-directory ldap

我正在尝试列出属于某个群组成员的所有群组。每次我尝试拉出Member Of属性时,我都会得到一个成员列表。

基本上,我只想查询AD组,并返回它所属的组。有什么想法吗?

以下是我目前正在尝试的代码。

function getGroups($group){
  $ldap_host="My AD host";
  $ldap_dn="My AD DN";
  $user="my AD username";
  $password="my AD password";
  $keep=array("samaccountname","distinguishedname","memberOf");
  $ldap=ldap_connect($ldap_host) or die("Could not connect to LDAP");
  ldap_bind($ldap,$user.'@trusourcelabs.com',$password) or die("Could not bind to LDAP"); 
  $query='(&(memberOf=CN=accessRW,OU=Domain Security Groups,OU=Groups,OU=IT,OU=Corporate,OU=myOU,DC=myDomain,DC=com))';
  $results=ldap_search($ldap,$ldap_dn,$query);
  $entries=ldap_get_entries($ldap, $results);
  array_shift($entries);
  $output=array();
  $i=0;
  foreach($entries as $u){
    foreach($keep as $x){
      if(isset($u[$x][0])) $attrval=$u[$x][0]; else $attrval=NULL;
      $output[$i][$x]=$attrval."<hr />";
    }
    $i++;
  }

  return $output;
}

1 个答案:

答案 0 :(得分:0)

刚想出来......我需要改变这一行:

$query='(&(memberOf=CN=accessRW,OU=Domain Security Groups,OU=Groups,OU=IT,OU=Corporate,OU=myOU,DC=myDomain,DC=com))';

到此:

$query='(&(member=CN=accessRW,OU=Domain Security Groups,OU=Groups,OU=IT,OU=Corporate,OU=myOU,DC=myDomain,DC=com))';

看起来我正在倒退...