Thread Daten eines Users aus dem AD auslesen: Userdaten aus AD auslesen (5 answers)
Opened by it12lsp at 2005-10-24 18:22

sequester01
 2006-10-10 01:05
#33709 #33709
User since
2006-10-02
7 Artikel
BenutzerIn
[default_avatar]
Ich hatte mal versucht den code von it12lsp zu verwenden, scheitere aber kläglich. Ich erhalte immer die Fehlermeldung: In order this operation a succesful bind must be completed on the connection.
Nur bekomme ich die nicht hin.
Was habe ich: W2k3 AD Domäne = "hallo.de", darin eine "OU=vertrieb" angelegt. darin einen user = "user1" mit passwort = "user1". Der Server hört gerne auf denNamen "Server01"
Mein Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use strict;
use Net::LDAP;
use Data::Dumper;


my %all_users;

############################################
# Bind to LDAP                             #
############################################
my $ldap = Net::LDAP->new( 'server01.hallo.de' ) or die "$@";
my $mesg = $ldap->bind( 'dc=hallo, dc=de',
password => 'user1'
);
$mesg = $ldap->search( # perform a search
base => "DC=hallo, DC=de",
filter => "(&(objectclass=user)(samAccountname=user1))"
);

$mesg->code && die $mesg->error;

##################################################
# retrieve the properties from the results #
##################################################
my $max = $mesg->count;
for ( my $i = 0; $i < $max; $i++ ) {
my $entry = $mesg->entry ( $i );
my $userid = $entry->get_value('samAccountname');
$all_users{$userid}{'first_name'} = $entry->get_value( 'givenName' );
$all_users{$userid}{'last_name'} = $entry->get_value( 'sn' );
$all_users{$userid}{'phone'} = $entry->get_value( 'telephoneNumber' );
}

################################
# unbind from LDAP #
################################
$mesg = $ldap->unbind;

print Dumper(\%all_users);


Er bricht ab bei der Zeile:
Code: (dl )
$mesg->code && die $mesg->error;


Wenn ich ldp.exe verwende, kann ich auf Tree dc=hallo, dc=de gehen und einen Bind mit user1 (pwd=user1) durchführen. Vor dem Bind werde ich mit fast einer identischen Information im ldp Fenster hingewiesen, wie ich als Fehler aus demPerl-Skript erhalte.
Sieht jemand was ich falsch mache?
Achso: Das Perlskript führe ich auf einem angemeldeten XP-PC aus, der in der Domäne hallo.de hängt und mit user1 angemeldet ist. Mit ldq habe ich auch nur eine Verbindung von "dc=hallo, dc=de" ohne "ou=vertrieb". Geht mit ldp - warum auch nicht...

Danke im voraus,

Seq

View full thread Daten eines Users aus dem AD auslesen: Userdaten aus AD auslesen