如何在 OU 中列出 OU?

San*_*ing 2 perl ldap active-directory

我想输出测试 OU 中的所有 OU。

my $mesg = $ldap->search(
    base => "OU=test,OU=company,DC=example,DC=com",
    scope => 'sub',
    filter => '(objectClass=*)',
    attrs => ['*'],
    );

print Dumper $mesg->entry;
Run Code Online (Sandbox Code Playgroud)

当我像这样进行搜索时,我只能获得有关测试 OU 的信息,而不是它包含哪些 OU 的信息。

任何想法如何做到这一点?

kal*_*yan 5

$mesg 将具有条目数组。您正在尝试打印搜索结果中的第一个条目。

尝试,

print Dumper $mesg
Run Code Online (Sandbox Code Playgroud)

也将您的过滤器更改为

filter => '(objectClass=organizationalUnit)'
Run Code Online (Sandbox Code Playgroud)

ldapsearch 从基本 dn 开始搜索,包括 basedn。此处 OU=test,OU=company,DC=example,DC=com 也是组织单位,因此此条目将作为您的结果中的第一个条目出现,而您仅打印该条目。