Muchas personas en mi organización no utilizan las funciones de contactos de Outlook, por lo que no tienen ninguna para exportar. En lugar de eso, confían en la lista de autocompletar. Soynopreguntando sobre cómotransferir esta lista tal como está, por ejemplo, al adquirir una nueva estación de trabajo. A veces necesitamos estas listas en formato textual. No hay .nk2
archivos porque las cuentas usan IMAP, por lo que Outlook almacena los datos internamente (como se describe en la ayuda vinculada). ¿Existe una manera fácil de obtenerlos?
Respuesta1
No creo que tenga la solución más eficiente, pero funcionó. Tengo una estación de trabajo Linux, así que arranqué el texto, pataleando y gritando, usando herramientas que ya conozco. Es posible que pueda hacer lo mismo con las versiones de Windows y/o el shell BASH que viene conGit para Windows, si no tienes otros programas adecuados para procesar los archivos.
Utilice MFCMAPI en la máquina de origen para extraer el
IPM.Configuration.Autocomplete
archivo como un archivo TXT. Fuera de alcance, pero puede seguir la primera parte de las instrucciones de transferencia vinculadas en la pregunta.Abra el archivo en un editor de texto, es XML. Vaya al
<property>
que contienePR_ROAMING_BINARYSTREAM
y guarde solo la cadena hexadecimal larga (0DF0...
) en un<Value>
archivo de texto plano independiente, por ejemploautomplete-dump-hex.txt
. Guárdelo en ASCII/UTF-8, sin marca de orden de bytes.Convierta este archivo que contiene la secuencia hexadecimal a binario. Usé un comando como este:
xxd -r -p < automplete-dump-hex.txt > automplete-dump-raw.txt
Este texto sin formato contiene partes de texto plano, en UTF-16, little-endian, pero también tiene datos binarios y las cadenas están separadas por bytes nulos. Puedes abrirlo en cualquier editor adecuado y seguir tu propio camino desde aquí. Lo abrí en Vim, forcé la codificación
:e ++enc=utf-16le automplete-dump-raw.txt
y luego lo sobrescribí como UTF-8 (:set fileencoding=utf-8
).Traté los nulos como separadores de líneas y busqué cualquiera que contuviera un
@
, luego convertí los nulos en nuevas líneas:grep -zF @ automplete-dump-raw.txt | tr '\000' '\n' > automplete-dump-possibles.txt
Luego ordené el último archivo de salida en un formato más amigable (TSV):
- Ordené y eliminé líneas duplicadas (Vim
:sort u
); - Líneas eliminadas de datos falsos;
- Se utilizó el reemplazo de expresiones regulares para convertir
name <email@address>
en dos campos separados; - Se eliminaron las comillas simples que rodean algunos nombres; y
- Desduplicado nuevamente, prefiriendo líneas con nombre + dirección en lugar de solo dirección.
- Ordené y eliminé líneas duplicadas (Vim
Esto produjo con éxito listas con cientos de direcciones únicas, lo cual me alegró. Creo que esta descripción de los pasos es más larga que los pasos reales.