- 论坛徽章:
- 0
|
我发现如果将$LDAP_BASE再多写一层OU就可以了,如:$LDAP_BASE = 'OU=BB,OU=Aaa,DC=internal,DC=aaa,DC=com';
是否能是这两个原因之一:
1、再上一层OU=Aaa下查询出的人过多(2W多),所以改成BB时就可以了
2、只能查询一层OU。但是我已经scope => 'sub'了
求高手给分析下原因
# LDAP server
my $LDAP_BASE = 'OU=Aaa,DC=internal,DC=aaa,DC=com'; # LDAP search base
my $LDAP_SERVER = 'xxx-yyy.zzz.aaa.com';
my $LDAP_DN = 'readonly';
my $LDAP_PASSWORD = 'passwd';
my $filter = "(&(objectClass=person))";
# connect to LDAP server
my $ldap = Net::LDAP->new($LDAP_SERVER, onerror => \&sendMail);
if (!defined($ldap)) {
&sendMail("Failed to connect to LDAP Server [$LDAP_SERVER]");
}
# bind account
my $result = $ldap->bind($LDAP_DN, password => $LDAP_PASSWORD);
if ($result->code()) {
&sendMail("AD bind failed");
}
#调试脚本是在这里停了
# get account information
$result = $ldap->search(
base => $LDAP_BASE,
scope => 'sub', # entire tree
timelimit => 600,
filter => $filter,
attrs => ['sAMAccountName','mail'],
);
给出的异常是Net::LDAP::Search=HASH(0xaba3d0)这种。 |
|