derkroepel
Goto Top

Probleme mit dem Adresscache in Outlook2007

Hallo KollegInnen,

ein etwas vertracktes Problem: Wir übernehmen aus unserem ERP-System über eine Textdatei jede Nacht mittels powershell-script Kontakte ins AD. Dabei werden zunächst alle Kontakte gelöscht und dann wieder komplett neu angelegt, um sie aktuell zu halten. Wir haben einen Exchange Server 2013 im Einsatz und unsere Benutzer nutzen Outlook 2007.

Schreibt man jetzt eine mail an einen Kontakt aus dem Globalen Adressbuch (in dem sich die übernommenen Kontakte befinden), wird dieser Kontakt (teilweise) in den lokalen Adresscache von Outlook geschrieben, damit man darauf schnell und komfortabel zurückgreifen kann. Nachts werden nun das Adressbuch / die Kontakte im AD - neu geschrieben - der Eintrag der auch im lokalen Adresscache gespeichert ist, wird selbstverständlich wieder neu und sogar genau mit den gleichen Daten im Globalen Adressbuch angelegt.

Trotzdem wird eine mail, die am nächsten Tag an den an den gecachten Adressaten gesandt wird, als unzustellbar zurückgeschickt, mit dem Hinweis: Empfänger ist unbekannt - keine gültige mail-Adresse. Umgeht man den Cache indem man den Eintrag direkt aus dem Adressbuch heraussucht und in die Adresszeile schreibt funktioniert es - meistens! Bei Notebookbenutzern die mit Offline-Dateien arbeiten geht auch das nicht, es wird hartnäckig an der "falschen" Adresse festgehalten. Hier bringt selbst das Löschen der Outlook.nk2-Datei nichts. Der Cache ist dann zwar leer, aber auf dem Notebook existiert offensichtlich noch irgendwie ein "falsches" (altes?) Adressbuch und der daraus verwendete Eintrag ist ebenfalls (noch?) ungültig.

Kann mir jemand vielleicht sagen, woher dieses fehlerhafte Verhalten (Änderung eines Indizes?) kommt und ob es eine Möglichkeit gibt, dieses bei der regelmäßigen nächtlichen Aktualisierung der Kontakte zu verhindern? Jedesmal nachts auch die .nk2-Datei lokal der Benutzer zu löschen ist keine Lösung, da unsere Benutzer diese Feature natürlich gerne sinnvoll nutzen möchten.

Sehr gerne beantworte ich alle Rückfragen und gebe weitere Erläuterungen des Problems.

Verzeiht die lange Beschreibung - anders ist es für mich nicht einigermaßen verständlich auszudrücken.

Vielen Dank im Voraus schon mal für euer Feedback

Thomas

Content-Key: 226650

Url: https://administrator.de/contentid/226650

Printed on: April 23, 2024 at 20:04 o'clock

Member: Ausserwoeger
Ausserwoeger Jan 15, 2014 updated at 08:41:49 (UTC)
Goto Top
Hi

Schwierige Sache dein kleines Problem. Da es ja jeden Tag zu einer Änderung im AD und somit im Outlook kommen kann müsste man jeden Tag den Cache des Outlook Leeren und neu befüllen bis zum nächsten Tag.

Das einfachste wäre erstmal mit dem Skript den Cache zurückzusetzen:

"%ProgramFiles(x86)%\Microsoft Office\Office14\outlook.exe" /CleanAutoCompleteCache
"%ProgramFiles%\Microsoft Office\Office14\outlook.exe" /CleanAutoCompleteCache

if not exist "C:\Benutzer" goto WINXP


rename %LOCALAPPDATA%\Microsoft\Outlook\RoamCache RoamCache.old
goto END_RENAME

:WINXP
rename "%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Outlook\RoamCache" RoamCache.old

:END_RENAME

@echo off


Als Zweiten schritt müsste man nun das Outlook dazu bringen nur Kontakte aus dem Entsprechenden Ordner des Globalen Adressbuchs zu verwenden.

Dazu gibt es hier eine recht gute Erklärung:

http://www.pctipp.ch/tipps-tricks/kummerkasten/office/artikel/outlook-2 ...

PS: DAS SKRIPT OBEN MUSST DU VON OUTLOOK 2010 AUF 2007 ÄNDERN

LG Andy
Member: DerKroepel
DerKroepel Jan 15, 2014 at 14:04:04 (UTC)
Goto Top
Hallo Andy,

danke für deine umfangreiche Antwort. Damit komme ich aber leider nicht über die Runden, denn wie schon beschrieben, ist das Löschen des Adresscaches von Outlook keine User-aktzebtable Lösung, da die Kollegen dieses Feature fleißig nutzen und "brauchen" (O-Ton: "ich will hier nicht lange 'rumsuchen, wenn ich dem schon mal geschrieben habe").

Zwischenzeitlich bin ich auf eine andere Lösung des Problems gekommen: Ich lege die Kontakte einfach nur einmal neu an, danach fahre ich ein Update, indem ich beim folgenden Import, ohne die Kontakte vorher zu löschen, versuche, den Kontakt neu anzulegen. Das ergibt einen Fehler, da der Kontakt schon existiert - nun kann ich die Kontaktdaten neu überschreiben, ohne dass ein neuer Datenbankeintrag im AD erzeugt wird. So stimmt dann der Indexeintrag im lokalen Outlook-Cache immer mit dem bereits existierenden Index des AD's überein.

Für die Probleme mit den Notebookusern müßte diese Lösung auch funktionieren, da deren Offline-Adressbücher dann auch Bestand haben.

Ich berichte mal morgen, ob das geklappt hat

Vielen Dank nochmals für deine Mühe.

MfG Thomas
Member: Ausserwoeger
Ausserwoeger Jan 15, 2014 at 14:10:01 (UTC)
Goto Top
Hi

Bitte Gerne ! Sollte es Funktionieren wäre eine kleine beschreibung wie du das gemacht hast für alle die andren Forenuser die nach dem Problem suchen toll

LG Andy
Member: DerKroepel
DerKroepel Jan 26, 2014 updated at 09:37:55 (UTC)
Goto Top
Hallo nochmal,

wie versprochen hier dann noch mal die Lösung meines Problems: Wie schon gesagt: Ist ja ganz einfach - ich lege die Kontakte nur einmalig neu an, danach mache ich nur ein Update (löschen des Adressbuches ist deshalb auskommentiert). Das habe ich realisiert indem ich zwar versuche die Kontakte neu anzulegen - das geht natürlich nicht, da der Kontakt ja bereits existiert - nun kann ich aber in der Schleife den Kontakt updaten. Script dafür sieht so aus:

..# Exchangae PSSnapin laden
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
..# Definieren der Vatiablen
$OrganisationsEinheit = "OU=Deine-Kontakte,OU=Kontakte,OU=Benutzer,DC=nt,DC=Domainname,DC=de"
$Addressbuch = "Deine-Kontakte"
$Contacts = Get-Content -Path c:\Adr_Import\Deine_Adr.txt -Encoding:string | convertfrom-csv -delimiter ";"
#Loeschen der bestehenden Kontakte
#Get-Contact -OrganizationalUnit $OrganisationsEinheit -ResultSize unlimited |Remove-MailContact -Confirm:$false
#Importieren der neuen Kontakte
$Contacts | ForEach{ if($_.email -ne "NULL" -and $_.email -ne " " ){
New-MailContact -Name ($_.Name1+", "+$_.Name2.Trim() +", Kd.Nr. "+ $_.nummer) -FirstName $_.Name2.Trim() -LastName $_.Name1 -ExternalEmailAddress $_.email.Trim() -OrganizationalUnit $OrganisationsEinheit
$Firma = $_.Firma
if ($Firma.Length -gt "63"){
$loeschen = $Firma.Length - 63
$Firma = $Firma.remove(63,$loeschen)
}
Set-Contact ($_.Name1+", "+$_.Name2.Trim() +", Kd.Nr. "+ $_.nummer) -StreetAddress $_.strasse -City $_.ort -PostalCode $_.plz -Phone $_.telefon -MobilePhone $_.mobil -Company $Firma -Notes $_.nummer
}
}
#Update des Adressbuches
Update-AddressList -Identity $Addressbuch

Vielleicht hilft es ja jemandem.

Vielen Dank nochmals und

mfG
Thomas

P.S.: die Punkte vor den ersten beiedn Schweinegattern mal wegdenken - dieser Editor meint besonders schlau zu sein und formatiert die als Nummerierung (%$§'''??/&) - kann man das abschalten?
Member: Ausserwoeger
Ausserwoeger Jan 27, 2014 at 11:04:16 (UTC)
Goto Top
Hi

Cool danke für die Infos dazu.

PS: Glaub ich nicht das man das abschalten kann.

Danke & LG Andy