Synchronisation von AD-Kontakten zwischen zwei Domänen
Hallo Forum,
ich habe ein Problem mit der Synchronisation von AD-Kontakten zwischen zwei Domänen und der Autovervollständigung von Outlook.
Aufbau
Konkret: zwischen zwei Domänen ohne Vertrauensstellung sollen Kontakte synchronisiert werden (ca. 30.000). Momentan mache ich das über LDIFDE. Ich exportiere also zunächst alle Kontakte von Domäne A in eine LDF-Datei. Dann lösche ich in Domäne B die Ziel-OU. Anschließend importiere ich in Domäne B die LDF-Datei. Zuletzt führe ich ein Exchange-PowerShell-Skript aus, das die AD-Kontakte auch wirklich zu Exchange-Kontakten macht. Das funktioniert sehr gut.
Problembeschreibung
Jetzt kommt das Problem: Outlook (speziell die Autovervollständigung) verwendet nicht die (von mir korrekt importierten) SMTP-Adressen (targetAddress hat den Wert "SMTP:max.mustermann@domain.de"), sondern versucht an das Kontaktobjektzu schicken (legacyExchangeDN, z.B. "/o=MyFirm RLP/ou=Exchange Administrative Group /cn=Recipients/cn=Max Mustermann). Outlook verschickt also an die Kontakt-Objekte, da ich aber die Kontakte vor dem Import lösche und alle Kontakte neu anlege (damit ich keine "Dateileichen" habe), entstehen immer neue Objekte - und Outlook versucht an Objekte zu schicken, die es nicht mehr gibt.
Beispiel
Konkret heißt das: schreibe ich das ersteMal an den Kontakt Max Mustermann, funktioniert alles gut. Outlook merkt sich den Kontakt und speichert sich den Objektnamen ab. Nachts wird der Kontakt Max Mustermann gelöscht und als neues Objekt angelegt. Schreibe ich am nächsten Tag an Max Mustermann, erhalte ich eine Unzustellbarkeitsbenachrichtigung, da es das Objekt von gestern nicht mehr gibt. Umständliche Lösung: ich muss als Benutzer erst den Autovervollständigungseintrag von Max Mustermann löschen! Selbst wenn ich die Adresse eintippe oder aus dem globalen Adressbuch wähle, verwendet Outlook sonst den Autovervollständigungseintrag.
Lösungsansätze
Frage
Jetzt suche ich nach einer Lösung, wie ich zwei ADs so synchronisieren kann, dass nur Änderungen geschrieben werden. Hat jemand eine Idee?
Code
Aus Domäne 1 exportieren
Ziel-OU in Domäne 2 löschen
Ziel-OU in Domäne 2 anlegen
Kontakte aus Domäne 1 in Domäne 2 importieren
ich habe ein Problem mit der Synchronisation von AD-Kontakten zwischen zwei Domänen und der Autovervollständigung von Outlook.
Aufbau
Konkret: zwischen zwei Domänen ohne Vertrauensstellung sollen Kontakte synchronisiert werden (ca. 30.000). Momentan mache ich das über LDIFDE. Ich exportiere also zunächst alle Kontakte von Domäne A in eine LDF-Datei. Dann lösche ich in Domäne B die Ziel-OU. Anschließend importiere ich in Domäne B die LDF-Datei. Zuletzt führe ich ein Exchange-PowerShell-Skript aus, das die AD-Kontakte auch wirklich zu Exchange-Kontakten macht. Das funktioniert sehr gut.
Problembeschreibung
Jetzt kommt das Problem: Outlook (speziell die Autovervollständigung) verwendet nicht die (von mir korrekt importierten) SMTP-Adressen (targetAddress hat den Wert "SMTP:max.mustermann@domain.de"), sondern versucht an das Kontaktobjektzu schicken (legacyExchangeDN, z.B. "/o=MyFirm RLP/ou=Exchange Administrative Group /cn=Recipients/cn=Max Mustermann). Outlook verschickt also an die Kontakt-Objekte, da ich aber die Kontakte vor dem Import lösche und alle Kontakte neu anlege (damit ich keine "Dateileichen" habe), entstehen immer neue Objekte - und Outlook versucht an Objekte zu schicken, die es nicht mehr gibt.
Beispiel
Konkret heißt das: schreibe ich das ersteMal an den Kontakt Max Mustermann, funktioniert alles gut. Outlook merkt sich den Kontakt und speichert sich den Objektnamen ab. Nachts wird der Kontakt Max Mustermann gelöscht und als neues Objekt angelegt. Schreibe ich am nächsten Tag an Max Mustermann, erhalte ich eine Unzustellbarkeitsbenachrichtigung, da es das Objekt von gestern nicht mehr gibt. Umständliche Lösung: ich muss als Benutzer erst den Autovervollständigungseintrag von Max Mustermann löschen! Selbst wenn ich die Adresse eintippe oder aus dem globalen Adressbuch wähle, verwendet Outlook sonst den Autovervollständigungseintrag.
Lösungsansätze
- Ich habe schon gesucht, ob man Outlook zwingen kann, sie SMTP-Adressen (statt des legacyExchangeDN) zu verwenden, das geht wohl aber nicht
- Die Autovervollständigung domänenweit zu verbieten ist zurzeit keine Option
- Wenn ich die Kontakte nur "drüberimportiere" und bestehende Kontakte dabei nicht geändert werden, dann werden natürlich a) keine veralteten Einträge gelöscht und b) keine Änderungen bei bestehenden Kontakten (wenn sich z.B. nur die Telefonnummer ändert) geschrieben
- Anscheinend kann man mit OpenLDAP synchronisieren; OpenLDAP ist allerdings eine ziemlich komplexe Sache, das erschlägt mich gerade
- Ich könnte grundsätzlich die Exportdatei von gestern mit der Importdatei von heute vergleichen und die Änderungen heraussuchen. Ich glaube aber nicht, dass ich das nur mit Batch-Skript oder PowerShell-Skript hinbekommen
- Ich könnte die Kontakte von heute in eine neue OU schreiben und die beiden OUs miteinander vergleichen, wenn es irgendwelche AD-Tools hierzu gäbe
Frage
Jetzt suche ich nach einer Lösung, wie ich zwei ADs so synchronisieren kann, dass nur Änderungen geschrieben werden. Hat jemand eine Idee?
Code
Aus Domäne 1 exportieren
ldifde -f "C:\Export.ldf" -s 127.0.0.1 -d "OU=CONTACTS,DC=CONTOSO,DC=COM" -p subtree -r "(objectcategory=organizationalUnit)" -l "cn,objectclass,ou"
Ziel-OU in Domäne 2 löschen
dsrm -noprompt -subtree "OU=IMPORT,DC=MYFIRM,DC=LOCAL"
Ziel-OU in Domäne 2 anlegen
dsadd ou "OU=IMPORT,DC=MYFIRM,DC=LOCAL"
Kontakte aus Domäne 1 in Domäne 2 importieren
ldifde -i -f "C:\Export.ldf" -s 127.0.0.1
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 349329
Url: https://administrator.de/contentid/349329
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar