Thread LDAP Daten Auslesen und weiter Verarbeiten
(24 answers)
Opened by Rambo at 2018-08-08 09:02
Hallo Rambo,
entscheidend ist also, die E-Mail-Adresse des Managers herauszufinden. Ich beziehe mich auf die Beispieldaten oben: Code: (dl
)
1 samACC name mail expired Manager Der Manager von Max MM Muster ist also "CN=John.Doh". Bei "CN=" vermute ich stark, dass es identisch mit dem Active Directory - Attribut "CN" ist. Wenn dem so ist, kannst Du wie folgt die E-Mail-Adressen aller Einträge (und somit auch der Manager) ermitteln, bevor das Expiredate geprüft wird: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 # VORSICHT: Diese Code ist nicht getestet # ... nach dem search: my %email_by_cn; foreach my $entry (@entries) { my $cn = $entry->get_value('cn'); my $mail = $entry->get_value('mail'); $cn=lc($cn); # in kleinbuchstaben wandeln - falls sich das mal unterscheidet $email_by_cn{$cn}=$mail; } Wenn Du später die E-Mail-Adresse des Managers "CN=John.Doh" wissen möchtest, kannst Du diese mit Code (perl): (dl
)
1 2 3 4 5 6 7 # VORSICHT: Diese Code ist nicht getestet # ... $manager=lc($entry->get_value('manager')); $manager =~ s/^CN=//i; # "CN=" am Anfang entfernen $manager=lc($manager); # ebenfalls in kleinbuchstaben wandeln my $email_adresse_des_managers=$email_by_cn{$manager}; ermitteln. Das setzt natürlich voraus, dass die Werte im Active Directory peinlich genau gepflegt werden. Ein Tippfehler oder gar eine Namensänderung und schon kann die dazugehörige E-Mail-Adresse nicht mehr gefunden werden. Last edited: 2018-08-09 22:42:36 +0200 (CEST) |