使用Net::LDAP在perl中执行绑定时获取“000004DC:ldaper:DSID-0C090752.”

使用Net::LDAP在perl中执行绑定时获取“000004DC:ldaper:DSID-0C090752.”,perl,active-directory,ldap,netldap,Perl,Active Directory,Ldap,Netldap,目标是获取我的Active Directory服务器中所有计算机的dn属性 当代码执行时,我得到:000004DC:LDAPPER:DSID-0C090752,注释:为了执行此操作,必须在连接上完成成功绑定 这是我的密码: #!/usr/bin/perl use strict; use Net::LDAP; use Data::Dumper; my $ldap = Net::LDAP->new( 'my.domain.com' ) or die $@; my $user = 'CN=u

目标是获取我的Active Directory服务器中所有计算机的dn属性

当代码执行时,我得到:000004DC:LDAPPER:DSID-0C090752,注释:为了执行此操作,必须在连接上完成成功绑定

这是我的密码:

#!/usr/bin/perl

use strict;
use Net::LDAP;
use Data::Dumper;

my $ldap = Net::LDAP->new( 'my.domain.com' ) or die $@;
my $user = 'CN=username,OU=orgname,DC=my,DC=domain,DC=com';
my $pass = 'my_password';
$ldap->bind($user, password => $pass);
#$ldap->bind;

my $mesg = $ldap->search(
        base => "DC=my,DC=domain,DC=com",
        filter => "ObjectClass=Computers",
    attrs => "dn"
);
我已经测试了直接登录域的用户/密码并成功。 如果我将此添加到脚本末尾,则提供其他信息:print Dumper$mesg

任何关于如何让这个脚本工作的建议都是我想要的。
谢谢

关于您发布的错误消息,我认为绑定尝试失败了。 它可能会帮助您改进绑定结果:

见:

这些方法的返回值是从 Net::LDAP::消息类。此类的方法允许您 检查请求的状态


你的束缚正在消失。尝试使用熟悉的工作工具中的LDAP进行绑定。我喜欢阿帕奇Studio@jwilleke我无法将软件添加到此Unix服务器,因此我使用Perl Net::LDAP软件,因为它已经在计算机上。我确实验证了该帐户的用户名/密码,不过是通过在另一个Windows工作站上登录该域来验证的。我看到绑定失败了,但我没有从DC那里得到原因,因此不确定下一步要尝试什么。try:我建议您使用一个已知的良好LDAP客户端,我使用Apache Studio,它将显示LDAP返回代码@jwilleke非常感谢您的反馈,不幸的是,我没有安装ApacheStudio的权利。我是否可以使用/尝试其他与Windows/Linux等效且固有的工具?另外,我查看了该列表,不幸的是它没有列出我的十六进制错误数据0的信息。$mesg的输出转储在我的帖子的底部,其中包括绑定的结果。绑定块位于Net::LDAP之前的“父级”中,而搜索结果位于Net::LDAP::search结束的消息的后半部分。这就是我获得信息来发布我在搜索中收到的错误的原因。
$VAR1 = bless( {
                 'parent' => bless( {
                                      'net_ldap_version' => 3,
                                      'net_ldap_scheme' => 'ldap',
                                      'net_ldap_debug' => 0,
                                      'net_ldap_socket' => bless( \*Symbol::GEN0, 'IO::Socket::INET' ),
                                      'net_ldap_host' => 'my.domain.com',
                                      'net_ldap_uri' => 'my.domain.com',
                                      'net_ldap_resp' => {},
                                      'net_ldap_mesg' => {},
                                      'net_ldap_async' => 0,
                                      'net_ldap_port' => 389,
                                      'net_ldap_refcnt' => 1
                                    }, 'Net::LDAP' ),
                 'errorMessage' => '000004DC: LdapErr: DSID-0C090752, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580',
                 'ctrl_hash' => undef,
                 'resultCode' => 1,
                 'callback' => undef,
                 'mesgid' => 2,
                 'matchedDN' => '',
                 'controls' => undef,
                 'raw' => undef
               }, 'Net::LDAP::Search' );
$mesg = $_ldap->bind("***", password => "***");
$mesg->is_error && die join ';' $mesg->code, $mesg->error