Viele Leute in meiner Organisation nutzen die Kontaktfunktionen von Outlook nicht, also gibt es keine, die sie exportieren können. Stattdessen verlassen sie sich auf die Autovervollständigungsliste. Ich binnichtfragen, wie manÜbertragen Sie diese Liste so wie sie ist, z. B. wenn wir einen neuen Arbeitsplatz bekommen. Manchmal brauchen wir diese Listen in einem Textformat. Es gibt keine .nk2
Dateien, da die Konten IMAP verwenden, sodass Outlook die Daten intern speichert (wie in der verlinkten Hilfe beschrieben). Gibt es eine einfache Möglichkeit, sie zu erhalten?
Antwort1
Ich glaube nicht, dass ich die effizienteste Lösung habe, aber es hat funktioniert. Ich habe eine Linux-Workstation, also habe ich den Text mit viel Geschrei und unter Einsatz von Tools, die ich bereits kenne, herausgerissen. Vielleicht können Sie dasselbe mit den Windows-Versionen und/oder der BASH-Shell tun, die mitgeliefert wird.Git für Windows, wenn Sie keine anderen geeigneten Programme zum Verarbeiten der Dateien haben.
Verwenden Sie MFCMAPI auf dem Quellcomputer, um die
IPM.Configuration.Autocomplete
Datei als TXT-Datei zu extrahieren. Dies liegt außerhalb des Geltungsbereichs, Sie können jedoch dem ersten Teil der in der Frage verlinkten Übertragungsanweisungen folgen.Öffnen Sie die Datei in einem Texteditor. Es handelt sich um XML. Gehen Sie zu der
<property>
Datei, die enthältPR_ROAMING_BINARYSTREAM
, und speichern Sie nur die lange hexadezimale Zeichenfolge (0DF0...
) in der<Value>
als separate reine Textdatei, z. B.automplete-dump-hex.txt
. Speichern Sie sie in ASCII/UTF-8, ohne Byte-Order-Markierung.Konvertieren Sie diese Datei, die den Hex-Stream enthält, in eine Binärdatei. Ich habe einen Befehl wie diesen verwendet:
xxd -r -p < automplete-dump-hex.txt > automplete-dump-raw.txt
Dieser Rohtext enthält reine Textteile in UTF-16, Little-Endian, aber auch Binärdaten und die Zeichenfolgen sind durch Nullbytes getrennt. Sie können ihn in jedem geeigneten Editor öffnen und von hier aus Ihren eigenen Weg gehen. Ich habe ihn in Vim geöffnet, die Kodierung erzwungen und
:e ++enc=utf-16le automplete-dump-raw.txt
ihn dann als UTF-8 (:set fileencoding=utf-8
) überschrieben.Ich habe die Nullen als Zeilentrenner behandelt und nach solchen gesucht, die ein enthielten
@
, und dann die Nullen in Zeilenumbrüche umgewandelt:grep -zF @ automplete-dump-raw.txt | tr '\000' '\n' > automplete-dump-possibles.txt
Dann habe ich die letzte Ausgabedatei in ein benutzerfreundlicheres Format (TSV) gebracht:
- Doppelte Zeilen sortiert und entfernt (Vim
:sort u
); - Zeilen mit falschen Daten gelöscht;
- Zum Konvertieren
name <email@address>
in zwei separate Felder wurde Regex-Ersetzung verwendet; - Einfache Anführungszeichen um einige Namen entfernt; und
- Erneut dedupliziert, Zeilen mit Name + Adresse werden gegenüber Zeilen mit nur der Adresse bevorzugt.
- Doppelte Zeilen sortiert und entfernt (Vim
Dadurch wurden erfolgreich Listen mit Hunderten eindeutiger Adressen erstellt, mit denen ich zufrieden war. Ich denke, diese Beschreibung der Schritte ist länger als die tatsächlichen Schritte.