0

我的问题是我有这样的 AD 设置:


--ROOT
  --depot A
    --computers
     --users
  --depot B
     --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);

至于为什么会发生这种情况,我没有什么大惊小怪的。我当前的设置是在后台使用 AD 的 IIS 上的 PHP 5.3。

如何返回这些不同的 OU 用户,是进行单独 ldap 查询然后连接结果然后搜索的唯一方法吗?

Ps ldap 新手,php 相对较新,但了解所有基本概念。欢迎任何帮助,如果我没有正确询问,请指出。

4

1 回答 1

0

查询限制让我相信它没有搜索子根,而实际上由于限制而无法达到那么远。因为这是一个目录,所以我只是让搜索参数有更多的深度,所以它们返回的更少。

于 2013-08-06T08:33:00.600 回答