2017-05-11 2 views
0

Ziel ist es, die "dn" -Attribut aller Computer in meinem Active Directory-Server.Abrufen von "000004DC: LdapErr: DSID-0C090752." Bei der Durchführung von Bindung in Perl mit Net :: LDAP

Wenn der Code ausgeführt wird, bekomme ich: "000004DC: LdapErr: DSID-0C090752, Kommentar: Um diese Operation durchzuführen, muss eine erfolgreiche Bindung für die Verbindung abgeschlossen sein."

Hier ist mein Code:

#!/usr/bin/perl 

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

my $ldap = Net::LDAP->new('my.domain.com') or die [email protected]; 
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" 
); 

ich den Benutzer/Passwort getestet haben in der Domäne mit Erfolg direkt zu protokollieren. Weitere Informationen, wenn ich dies bis zum Ende des Skripts hinzu: print Dumper($mesg);

$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'); 

Vorschläge, wie dieses Skript zum Laufen zu bringen sind, was ich suche. Danke!

+0

Ihre Bindung schlägt fehl. Versuchen Sie, mit LDAP von einem Know-zu-Arbeit-Tool zu binden. (Ich mag Apache Studio) – jwilleke

+0

@jwilleke Ich bin nicht in der Lage, Software zu diesem Unix-Server hinzuzufügen, also benutze ich Perl Net :: LDAP-Software, da es bereits auf dem Computer ist. Ich habe den Benutzernamen/das Passwort des Accounts überprüft, indem ich mich mit der Domain auf einer anderen Windows-Workstation anmeldete. Ich sehe, dass die Bindung fehlgeschlagen ist, aber ich bekomme keinen Grund von der DC so nicht sicher, was ich als nächstes versuchen soll. – scryptKiddy

+0

Versuchen Sie: http://ldapwiki.com/wiki/Determining%20the%20FDN und ich schlage vor, dass Sie einen bekannten guten LDAP-Client verwenden (ich verwende Apache Studio), der den LDAP-Returncode zeigt. http://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors – jwilleke

Antwort

-1

In Bezug auf die Fehlermeldung, die Sie geschrieben haben, würde ich sagen, der bind Versuch gescheitert. Es könnten Ihnen helfen, bind Ergebnis zu verbessern:

$mesg = $_ldap->bind("***", password => "***"); 
$mesg->is_error && die join ';' $mesg->code, $mesg->error 

Net::LDAP Siehe:

Der Rückgabewert dieser Methoden ist ein Objekt abgeleitet aus der Net :: LDAP :: Nachrichtenklasse. Die Methoden dieser Klasse ermöglichen es Ihnen, den Status der Anfrage zu untersuchen.

+0

Die Ausgabe der $ Mesg wird im unteren Teil meines Beitrags abgelegt, der das Ergebnis der Bindung enthält. Der Bindeabschnitt befindet sich in der übergeordneten Ebene bis zum Net :: LDAP, während das Suchergebnis in der zweiten Hälfte der Nachricht in Net :: LDAP :: Search endet. So habe ich die Information erhalten, um den Fehler, den ich bei der Suche erhalten habe, zu posten. – scryptKiddy

Verwandte Themen