Active Directory Kontakte

  • mal ne frage. ich habe ein crm system auf einem mysql server unter linux laufen. habe ein script geschrieben das alle kontakte aus mysql in das Active Directory importiert. habe eine OU=Adressbuch erstellt wo alle kontakte dort landen. gleichzeitig lauft auf der win kiste exchange server 2003. wie kriege ich am bestens alle kontakte is exchange adressbuch hinein. was ist strategisch der beste weg, oder überhaupt eine lösung. bin neu in der windows exchange 2003 welt.

    • Offizieller Beitrag

    Hallo,


    In der OU Adressbuch (auf dem Exchange Server) alle Kontakte markieren - rechte Maustaste - Exchange Aufgaben - E-mail aktivieren (heisst das denke ich). Eine interne Adresse bekommen die Kontakte über den RUS und die Empfängerrichtlinie und die externe Adresse hast du sicher mit dem script Importiert (?). Solltest du die externe Adresse nicht definiert haben, musst du das dann für jeden Kontakt machen. Leider ist das Anlegen von E-Mail aktivierten Objekten (Kontakte, User mit Postfach usw.) nur per CDO Supportet. (gehen tut es aber auch mit VBScript).

  • Hallo.


    Wenn die Kontakte im AD mail-aktiviert sind, dann tauchen diese auch automatisch im Exchange-Adressbuch auf. Wie importierst du denn die Kontakte? Mit einem VB-Script?
    Wenn die Kontakte jetzt nicht im Exchange Adressbuch auftauchen, dann sind sie sicherlich nicht mail-aktiviert. Das kannst du festestellen, indem du auf deinem Exchange-Server das MMC-Snapin "Benutzer und Computer" aufrufst und dir die Eigenschaften der Kontakte anschaust. Dort muss es den Reiter "E-Mail Adressen" geben. Wenn es diesen nicht gibt, dann kannst du mit rechter Maustaste auf die Kontakte "Exchange Aufgaben" die Kontakte mail-aktivieren. Die importierten E-Mailadressen gehen dadurch aber wahrscheinlich verloren. Besser ist, wenn der Import direkt mail-aktivierte Kontakte erstellt. Poste doch mal dein Script.



    Gruss
    Andreas

  • ich erstelle eine ldf datei in der linux umgebung mit perl. dann kopiere ich sie automatisch auf den exchange/AD server


    ##########################


    #!/usr/bin/perl -w


    use strict;
    use CGI;
    use DBI;


    # Verbindung zur mySQL


    my $file="/mnt/sql2ldap.ldf";
    my $cgi_obj = new CGI;
    my $dbh = DBI->connect( 'dbi:mysql:crm', 'root', 'secret1') ||
    die "KeineVerbindung zum MySQL-Server aufbauen: $DBI::errstr\n";


    # SQL Query


    my $sth = $dbh->prepare( 'select last_name,first_name,phone1_area_code,phone1_number,email1_email_address from person where Active = 1' ) ||
    die "Kann Statement nicht vorbereiten: $DBI::errstr\n";


    # select last_name,first_name,phone1_area_code,phone1_number,email1_email_address from person;


    $sth->execute() ||
    die "Kann Abfrage nicht ausfuehren: $DBI::errstr\n";
    open(FILE,">$file");


    # LDIF Generate


    while ( my @ergebnis = $sth->fetchrow_array() ){


    # utf8::encode($ergebnis[0]);
    # utf8::encode($ergebnis[1]);
    # utf8::encode($ergebnis[2]);
    # utf8::encode($ergebnis[3]);
    # utf8::encode($ergebnis[4]);


    $ergebnis[0]="none" if $ergebnis[0] eq "";
    $ergebnis[1]="(Vorname fehlt)" if $ergebnis[1] eq "";
    $ergebnis[2]="none" if $ergebnis[2] eq "";
    $ergebnis[3]="none" if $ergebnis[3] eq "";
    $ergebnis[4]="none" if $ergebnis[4] eq "";


    #for (my $i=0; $i<=4; $i++) {
    # $ergebnis[$i]="none" if $ergebnis[$i] eq "";
    #}


    print FILE "dn: CN=" . $ergebnis[1] ." " . $ergebnis[0] . ",OU=Adressbuch,DC=firma,DC=de" .
    "\n" . "changetype: add" .
    "\n" . "objectClass: top" .
    "\n" . "objectClass: person" .
    "\n" . "objectClass: organizationalPerson" .
    "\n" . "objectClass: contact" .
    "\n" . "cn: " . $ergebnis[1] ." " . $ergebnis[0] .
    "\n" . "sn: " . $ergebnis[0] .
    "\n" . "telephoneNumber: " . $ergebnis[2] . $ergebnis[3] .
    "\n" . "givenName: " . $ergebnis[1] .
    "\n" . "distinguishedName: CN=" . $ergebnis[1] ." " . $ergebnis[0] . ",OU=Adressbuch,DC=firma,DC=de" .
    "\n" . "instanceType: 4" .
    "\n" . "name: " . $ergebnis[1] ." " . $ergebnis[0] .
    "\n" . "objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=firma,DC=de" .
    "\n" . "mail: " . $ergebnis[4] ."\n\n";
    }



    close(FILE);


    $sth->finish();
    $dbh->disconnect;


    system("cat " . $file);



    ##################################


    unter windows importiere ich sie mit:


    ldifde -k -i -f sql2ldap.ldif -s server


    die kontakte erscheinen auch in der OU=Adressbuch. leider sehe ich sie nicht im outlook das mit dem exchange verbunden ist. nur die kontakte der AD Benutzer.



    so sieht ein ldf eintag aus.


    ###################################


    # dn: CN=Bercker Matthias,OU=Adressbuch,DC=firma,DC=de
    # changetype: add
    # objectClass: top
    # objectClass: person
    # objectClass: organizationalPerson
    # objectClass: contact
    # cn: Becker Matthias
    # telephoneNumber: 03064783633
    # givenName: Bercker
    # initials: Matthias
    # distinguishedName :CN=Bercker Matthias,OU=Adressbuch,DC=firma,DC=de
    # instanceType: 4
    # name: Becker Matthias
    # objectCategory:
    # CN=Person,CN=Schema,CN=Configuration,DC=firma,DC=de
    # mail: blabla@cisco.com


    ####################################


    fehlt noch was. (wie kriege ich die kontakte aktiv) oder villeicht eine andere lösung???



    übrigens :
    In der OU Adressbuch (auf dem Exchange Server) alle Kontakte markieren - rechte Maustaste - Exchange Aufgaben - E-mail aktivieren (heisst das denke ich).


    diese option hatte ich leider nicht?

  • problem gelöst.


    habe folgende zeilen mit eingebettet ins script, um aktive kontakte zu erstellen.


    targetAddress: SMTP:blabla@bla.de
    mAPIRecipient: FALSE
    mailNickname:user name
    internetEncoding: xxxxxxx
    name: user name
    legacyExchangeDN: /o=Lewron Exchange/ou=Erste administrative Gruppe/cn=Recipients/cn= user name
    objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=firma,DC=de


    diesen script importiere ich mit ldifde -k -i -f script.ldif -s myserver.de


    die kontakte sind nun sichtbar. und der versand funtz auch in meinter testumgebung.


    danke nochmal für eure tips. :)


    nun muss ich weiter mein exchage wissen erweitern.