Nicknamecache (NK2-Datei / AutocompleteCache)
Outlook vereinfacht für Anwender die Adressierung häufig genutzter Empfänger über einen eigenen Cache. Natürlich kann ein Anwender die Adressen manuell eintippen oder aus den verschiedenen Adressbüchern auswählen aber Outlook schlägt auch Empfänger schon während der Eingabe vor, wenn diese früher schon mal als Empfänger genutzt wurden. Das ganze sieht dann z.B. so aus:
Hinter jedem Eintrag steht übrigens auch das kleine "X", um diesen Datensatz Aus dem Cache zu entfernen. Outlook speichert sich also die schon einmal adressierten Empfänger in einem eigenen Cache, um diese Vorschläge schnell unterbreiten zu können.
Hinweis
Der NickNameCache ist nicht mit den Ordner
"Vorgeschlagene Kontakte" (Suggested Contacts)
zu verwechseln!
Hinweise zu dem Ordner finden
Sie am Ende dieser Seite.
Wer mit Outlook 2000 begonnen hat, kann eventuell noch eine Datei mit der Ending "*.nick" finden. Erst mit Outlook 2003 lautet die Extension "NK2". Die Datei ist im Profil verlinkt, so dass ein Update von Outlook bei Beibehaltung des Profils auch bei 2003 und 2007 eine NICK-Datei beibehalten wird.
Ablage des Cache
Natürlich muss sich Outlook diese Daten irgendwo speichern:
Bis Outlook 2007: NK2-Datei
Dazu hat Outlook bis zur Version 2007 eine Datei mit der Ending NK2 im Profil mit abgelegt.
Windows XP Laufwerk:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\Microsoft\Outlook Windows Vista und neuere Versionen Laufwerk:\Benutzer\Benutzername\AppData\Roaming\Microsoft\Outlook
Auch wenn die Datei über Roaming Profiles auch auf andere Computer mitgenommen werden kann, so nutzen nur die wenigsten Firmen diese Möglichkeit. Und selbst dann sind diese Daten nicht in Outlook WebApp verfügbar.
Das Format der NK2-Datei wurde mittlerweile auch veröffentlicht:
Outlook 2003/2007 NK2
File Format and Developer Guidelines
http://stephengriffin.members.winisp.net/nk2/NK2WithBinaryExample.pdf
Ab Outlook 2010: Postfach
Daher hat Microsoft mit Outlook 2010 diese Verhalten geändert und legt die Daten nun in einer versteckten Datei im Postfach ab. Mit dem EWSEditor oder MFCMAPI können Sie einfach auf dem Postfach die "Associated Items" auswählen.
In der Liste der Elemente finden Sie dann auch genau ein Element vom Typ "IPM.Configuration.Autocomplete"
Beachten Sie bitte, dass Outlook diese Information beim Start einliest und dann im Memory Cache hält. Wer also an diesen Werten etwas ändern möchte, sollte dies nur tun, wenn alle Outlook Instanzen geschlossen sind. Sonst könnte es passieren, dass ein laufendes Outlook beim Schließen ihre mühsam gemachten Änderungen einfach überschreibt. Das bedeutet natürlich auch, dass beim Start mehrerer Outlook Instanzen das zuletzt beendete Outlook "gewinnt"
Mit Procmon ist aber auch zu sehen, dass Outlook beim Start wohl diese Information doch in einer NK2-Datei in das Profil extrahiert.
c:\User\<User>\AppData\Local\MIcrosoft\Outlook\RoamCache\Stream_Autocomplete_xxxxxx.dat
Anscheinend nutzt Outlook doch noch diese Datei als temporären Speicher.
- Programmatically Accessing
the Nickname Cache in Outlook
2010
http://blogs.msdn.com/b/officedevdocs/archive/2011/06/13/programmatically-accessing-the-nickname-cache-in-outlook-2010.aspx
Exchange 2010 OWA
Aber auch bei der Verwendung von Outlook Web Access gibt es dieses Hilfsmittel. Allerdings werden diese Daten wieder an einer dritten Stelle abgespeichert. Hier muss man eine Ebene höher auf "MsgFolderRoot" in die "Associated Items" schauen, um auch hier ein Element zu finden.
Dieses hat aber abweichend nun die Messageclass: "IPM.Configuration.OWA.AutocompleteCache"
Ich könnte mir vorstellen, dass Microsoft absichtlich für OWA einen eigenen Cache eingerichtet hat, um eben nicht in Konflikt mit Outlook zu kommen.
Problemfälle, Migrationen
Leider ist der Cache auch eine rein lokale Sache von Outlook und Outlook gleicht die Daten nicht einmal mit der Exchange GAL oder dem Offline Adressbuch abgleicht. Das größte Problem sind damit "veraltete" Einträge, die auf nicht mehr existente Empfänger verweisen. In dem Cache gibt es mehrere Typen von Empfängern, wie NK2View gut anzeigt:
Outlook speichert sich den "Address Type" mit ab und sie können sich schon denken, welche Adresse sich Outlook bei einer EX-Adresse speichert: Es ist natürlich wieder der schon lange als abgekündigt bezeichnete LegacyExchangeDN. Damit ist auch klar, welche Probleme in Verbindung mit dem NicknameCache in Firmen oft zu Verwirrungen führen:
- Gelöschte Exchange
Postfächer
Diese werden von Outlook weiter vorgeschlagen, ob wohl sie schon lange nicht mehr im OAB oder in der GAL gelistet werden - Erneut angelegte Postfächer
Es existiert bei vielen Administratoren immer noch die Meinung, dass man ein Postfach einfach löschen und mit gleichem Namen neu anlegen kann oder über einen Reconnect eine Disconnected Mailbox an ein AD-Konto binden kann. In der Regel bekommt dieses Objekt dann doch einen neuen LegacyExchangeDN. - Migrationen zwischen
Systemen
Vor einer Migration werden oft Kontakte oder MailUser für Postfächer angelegt, die noch im anderen System aktiv sind (Stichwort Verzeichnisabgleich). Wird nun das Postfach migriert, dann wird vorher der "MailKontakt" gelöscht und dafür eine neues Mailbox angelegt. Wird dabei der alte LegacyExchangeDN nicht als X.500-Adresse mitgeführt, dann wird ist der Eintrag im Nickname-Cache nicht mehr gültig.
Wohl dem, der bei der Migration "richtig" arbeitet, damit dies nicht passiert.
Wenn der Support dann letztlich herausfindet, dass der Anwender nicht über das Adressbuch sondern über den Nicknamecache eine neue Mail erstellt und seine "Unzustelbarkeit" bekommt, dann ist es nicht immer einfach dem Anwender die Zusammenhänge zu erläutern.
Löschen und Bereinigen und Altern
Der einfachste Weg für einen Anwender besteht darin, den fraglichen Eintrag einfach über das "X" am ende rauszuwerfen. Alternativ kann er den Nickname-Cache auch komplett löschen. Früher musste der Anwender dazu die NK2-Datei suchen und löschen. Mittlerweile geht dies auch über eine Outlook Kommandozeile oder sogar über einen Button in Outlook selbst:
- Outlook Kommandozeile
Über das Ausführen-Menü kann der Anwender folgendes eingeben
Outlook.exe /CleanAutoCompleteCache“
- Outlook GUI
Über "Datei" - "Optionen" kann der Anwender selbst den Button aktivieren
Da die Daten sowieso auf dem „Server“ liegen, sind diese aber auch zentral löschbar. Allerdings gibt es kein fertiges Skript von Microsoft hierfür. Und selbst wenn Sie zentral dieses versteckte Element entfernen wollen, müssen Sie sicherstellen, dass der Anwender Outlook nicht gestartet hat. Sonst wird Outlook beim beenden diese Element wieder mit den Daten anlegen, die Outlook im Speicher hat.
- 287623 How to reset the nickname and the automatic completion caches in Outlook
- How To Reset The Outlook
Nickname Autocompletion Cache
http://support.lushsoft.com/KB/a58/how-to-reset-the-outlook-nickname-autocompletion-cache.aspx
Import
Auch Outlook selbst hat einige Funktonen als Kommandozeile, um NK2-Dateien vorheriger Outlook Versionen zu übernehmen. Normalerweise importiert Outlook beim Start eine vorhandene NK2-Datei genau einmal. Das können Sie aber auch per Kommandozeile erneut ansstoßen
outlook.exe /importnk2
Allerdings habe ich diese Option bislang noch nicht eingesetzt, da ein "Neuanfang" speziell nach einer ProfilUmstellung durch eine Migration auch eine Change ist. So sind zumindest keine "alten" ungültigen Einträge mehr vorhanden. Und die Outlook Suche in der GAL und den Kontakten ist schon sehr gut, so dass der NickNameCache eher eine nette Hilfe denn eine Voraussetzung ist. Seit Outlook 2010 sind ja eh alle adressierten Kontakte auch in "Vorgeschlagene Kontakte" enthalten.
- 980542 Importieren von NK2-Dateien in Outlook 2010
Größenlimit
Die NK2-Datei wächst natürlich nicht ins unendliche. Bis Outlook 2003 wurden nur maximal 1000 Einträge abgespeichert. Mit Outlook 2007/2010 wurde die Zahl auf 2000 angehoben. Wem das nicht reicht, kann über die Registrierung die Werte noch weiter anheben. Hier mal ein Beispiel für 5000 Einträge für die verschiedenen Office-Versionen:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_User\Software\Microsoft\Office\11.0\Outlook\AutoNameCheck] "MaxNicknames"=dword:00001388 [HKEY_CURRENT_User\Software\Microsoft\Office\12.0\Outlook\AutoNameCheck] "MaxNicknames"=dword:00001388 [HKEY_CURRENT_User\Software\Microsoft\Office\14.0\Outlook\AutoNameCheck] "MaxNicknames"=dword:00001388
Aktuell kann ich den Eintrag nicht mehr Eventlog finden, aber mir war so, als für Outlook sogar eine Warnung ins Eventlog schreiben, wenn nur noch 10% "Platz" in der NK2-Datei gewesen wäre. Sollte ich den Event wieder finden, werde ich ihn nachreichen.
- 293032 RedUCE the Number of Names in the Nickname Cache (Outlook 2002)
- 293032 OL2002: NK2 File Does Not Change Size After You Reduce the Number of Names in the Nickname Cache
- Size limit of Outlook
AutoComplete file (.NK2)
http://www.nirsoft.net/utils/outlook_nk2_file_size_limit.html
NK2 Editor/NK2View
Die Firma Nirsoft hat sich die Mühe gemacht, das NK2-Format der Datei, welches von Microsoft nicht offengelegt ist, zu decodieren und einen Editor dafür bereit zu stellen. Damit können Sie als Administrator oder Benutzer eine NK2-Datei einfach bearbeiten.
-
NK2Edit (Free für privat, Firmen
müssen eine Lizenz erwerben)
http://www.nirsoft.net/utils/outlook_nk2_edit.html -
NK2View (Freeware)
https://www.nirsoft.net/utils/outlook_nk2_autocomplete.html
"Vorgeschlagene Kontakte" (Suggested Contacts)
Neu in Outlook 2010 ist auch der Ordner "Vorgeschlagene Kontakte". So genau habe ich dessen Funktion aber noch nicht verstanden, denn dies ist NICHT ein Ersatz für die NK2-Datei oder Nickname-Cache. Anscheinend speichert Outlook jede Adresse, an die ich etwas gesendet habe, hier als Kontakt. Vielleicht möchte ich die Adresse später ja noch einmal nutzen oder um Daten vervollständigen und dann in meinen normalen Kontaktordern überführen.
Beim Verfassen einer Mail werden die Daten aus diesem Ordner nicht zusätzlich zur Vorschlagsliste herangezogen aber Sie können natürlich auch in der Vorschlagsliste enthalten sein. Sie Kontakte werden aber per Default als Adressbuch angezeigt und beim "Namen Überprüfen" auch durchsucht.
Und er ein iPhone hat, der hat diesen Ordner auch automatisch in der Synchronisation:
Es ist aber ein ganz eigener Ordner und losgelöst zu sehen. Sie können das Verhalten von Outlook, jede jemals adressierte Mailadresse dort aufzunehmen in den Optionen abschalten:
Dann müssen sie nur noch den Inhalt des Ordner leeren und schon stören Sie nicht mehr alte Empfänger, die sie nur kurzfristig, z.B. bei einer Antwort auf eine Mail, verwendet haben.
Glen Scales hat auf http://gsexdev.blogspot.de/search?q=nk2#!/2012/03/how-to-series-sample-5-clearing.html schon ein Beispielskript bereit gestellt, welches mit entsprechend privilegierten Account den Ordner „Suggested Contacts“ leert.
- Suggested contacts
https://piabork.pbworks.com/w/page/13570590/Suggested%20contacts - Automatically add contacts für everyone that you send an
email message
http://office.microsoft.com/en-us/outlook-help/automatically-add-contacts-for-everyone-that-you-send-an-email-message-HA101874367.aspx - Outlook 2010 AutoComplete
Cache and Suggested Contacts
http://www.windowsitpro.com/article/outlook/outlook-2010-autocomplete-cache-and-suggested-contacts
Weitere Links
- Verzeichnisabgleich
-
The Nickname Cache
http://blogs.msdn.com/b/stephen_griffin/archive/2010/03/15/the-nickname-cache.aspx - Outlook - Vorgeschlagene
Kontakte, Adress-Cache und
*.nk2-Dateien verstehen
http://www.tecchannel.de/kommunikation/tipps/2027803/outlook_vorgeschlagene_kontakte_adress_cache_und_nk2_dateien_verstehen/ - Programmatically Accessing
the Nickname Cache in Outlook
2010
http://blogs.msdn.com/b/officedevdocs/archive/2011/06/13/programmatically-accessing-the-nickname-cache-in-outlook-2010.aspx - Suggested Contacts and Auto-Complete
Lists
http://www.slipstick.com/outlook/suggested-contacts-and-auto-complete-lists/ - Understanding Outlook's
Auto-Complete Cache (*.NK2)
http://www.slipstick.com/outlook/email/understanding-outlooks-autocomplete-cache-nk2/ - Exchange Web Services (EWS)
Managed API – Part 2
http://blogs.planetsoftware.com.au/paul/archive/2010/05/20/exchange-web-services-ews-managed-api-ndash-part-2.aspx - http://www.nk2.info
-
WinTotal Tipparchiv Office
Microsoft Outlook Microsoft
Outlook Autovervollständigung in
E-Mail Adresse
http://www.wintotal.de/tipparchiv/?id=810 -
Der Outlook Nickname Cache
http://outlooknewsgroupfaq.wordpress.com/2007/10/29/der-outlook-nickname-cache/ -
Outlook's Ambiguous Name
Resolution (ANR)
http://marksmith.netrends.com/Lists/Posts/Post.aspx?List=d0ef1a62%2D8e97%2D484a%2D9053%2D7acda05534cb&ID=5 -
Understanding how AutoComplete
works in Outlook 2010
http://theservermonkey.wordpress.com/2010/07/30/understanding-how-autocomplete-works-in-outlook-2010/