如何在Perl中查询给定DN的组织单位

时间:2011-11-09 09:22:27

标签: perl ldap ou netldap

我需要从给定的DN字符串中检索所有组织单位,我使用Net :: LDAP模块和这个小脚本:

my $msg = $ldap->search(
    base=>'DC=sample1,DC=sample2',
    filter=>'(objectclass=User)',
);
foreach $entry ($msg->entries) {
    $dn = $entry->dn;
    #how can i retrieve OUs?
}

例如,如果dn返回该字符串:

  

CN =样品样品,OU = 1,OU = 2,DC =样品1,DC =样品2

我想检索一个和两个。

2 个答案:

答案 0 :(得分:2)

使用基础对象dc=example1,dc=sample2和状态过滤器(ou=*)发出一级搜索请求。根据这些结果,使用每个返回的ou使用状态过滤器(ou=*)发出一级搜索。对于每个搜索,请指定大小限制和时间限制。有关搜索请求的详细信息,请参阅"LDAP: Using ldapsearch""LDAP: programming practices"

答案 1 :(得分:0)

最详细"(&(ou = *)(objectClass = organizationalunit))"