Windows Explored

Everyday Windows Desktop Support, Advanced Troubleshooting & Other OS Tidbits

Everything You Wanted (or Didn’t Want) to Know About the Outlook Auto-Complete File

Posted by William Diaz on May 6, 2011


Some Auto-Complete (.nk2 & .dat) facts:

  • Also known as the “nick names” list or auto-complete list, it stores a list of emails addresses you have mailed in Outlook.
  • Can be turned off.
    • In Outlook 2003/2007: Tools > Options > Preferences tab > E-mail Options > Advanced E-Mail Options > Suggest names while completing To, CC, Bcc fields
    • In Outlook 2010: File tab > Options > Mail > under Send Messages Use Auto-Complete List to suggest names when typing in the To, CC, and Bcc lines
  • Location
    • Outlook 2003/2007 Windows XP: C:\Documents and Settings\username\Application Data\Microsoft\Outlook
    • Outlook 2003/2007 Windows 7 and Vista: C:\Users\username\AppData\Roaming\Microsoft\Outlook
    • Outlook 2010 Windows XP: C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\Outlook\RoamCache
    • Outlook 2010 Windows 7 and Vista: C:\Users\username\AppData\Local\Microsoft\Outlook\RoamCache
  • Naming conventions:
    • Outlook 2003/2007: ProfileName.nk2
    • Outlook 2010: Stream_Autocomplete_0_{random 16 byte key}.dat.
  • How it works:
    • Outlook stores new additions or deletions to the auto-complete internally (cached) upon clicking send; it does not matter if the message is transmitted, scheduled for later delivery, or waiting to be sent, i.e. offline mode.
    • The actual .nk2 or auto-complete.dat file is only modified when a new address is added or one is deleted AFTER Outlook closes normally. If Outlook is terminated via the Task Manager, crashes, or hangs, the routines that run when Outlook is closed normally do not run and the auto-complete will not be updated.
  • Limitations:
    • Outlook 2003: the maximum number of auto-complete entries is 1000 (most recently used)
    • Outlook 2007/2010: the maximum number of auto-complete entries is 2000 (most recently used)
      • This can be modified by editing the registry. Go to HKCU\Software\Microsoft\Office\11.0\Outlook\AutoNameCheck. If the AutoNameCheck key does not exist, create it. Within this key, create a new DWORD value called MaxNicknames and change the decimal value to the desired number.1
  • Troubleshooting:
    • The most common problem with the nk2 or autocomplete.dat is when it will no longer accept entries. This is not a limitation of the number of entries it can hold–the auto-complete list is dynamic, retaining the most recently used entries and discarding the oldest. When the auto-complete file no longer accepts new entries, it is most likely due to corruption. When this happens Outlook may create a new auto-complete file. If it fails to, then you will need to manually clear or remove the file.
      • In Outlook 2003/2007 simply rename or delete the nk2 file.
      • In Outlook 2010 go to File tab > Options > Mail > under Send Messages click Empty Auto-Complete List
        • Some users do not want to depart from their auto-complete list, even if it is corrupt. In these cases, you can attempt to recover the auto-complete by using any number of NK2 utilities. You can obtain a good nk2 edit utility from NirSoft at http://www.nirsoft.net/utils/outlook_nk2_edit.html2.
    • Another cause of the auto-complete file not updating is when Outlook crashes or is ended in a manner that prevents Outlook from running the shutdown routines that update this file, e.g. killing Outlook via the Task Manager. Also, it should be noted that if a user has the bad habit of leaving Outlook open and locking their computer, that the scheduled nightly reboot will terminate Outlook in a manner that prevents the auto-complete file from being updated.
  • A different Auto-Complete list in Outlook 2010:
    • Uses a .dat file extension as opposed to .nk2
    • Different naming convention that does not follow the name of Outlook profile
    • In an Exchange environment, this auto-complete file is roaming, i.e. it travels from workstation to workstation. This was a shortcoming of the 2003/2007 nk2 format.
    • Because Outlook 2010 uses a different format for storing the auto-complete, you cannot simply copy the nk2 to the new location and expect Outlook 2010 to open it and get the entries. However, if you do have an existing nk2, upon opening Outlook 2010 these entries will be pulled into the new auto-complete.dat3.
      • If you need to manually import an nk2 into Outlook 2010 then place the nk2 into %appdata%\Microsoft\Outlook and run outlook.exe /importnk24.
  • Viewing the nk2 file (the stuff probably didn’t care to know):
    • You can view enough of the nk2 or dat with notepad to make out the entries:
      image
      The unreadable part is data that cannot be read as ASCII. Using an nk2 or dat editor you can see the additional data in string, number, or Hex format. For example:
      image

      And finally, a very detailed table explaining some of the common property types (NirSoft):

      Property ID Type Name Description
      6001001f String Search String Outlook uses this string for searching the right recipient when the user type the letters in the To/CC text-box. For example, if the value in this field is abcd, and the user type abcd in the recipients text box, this record will be displayed in the drop down. However, you should be aware that Outlook automatically put the email address in this field when the user sends a message.
      0c150003 Integer Recipient Type The type of the recipient. 1 = To, 2 = CC, 3 = BCC.
      0fff0102 Binary EntryID Unique EntryID of this recipient, in binary format. Generally, you should not modify this value. NK2Edit automatically generate this ID according to the other fields.
      300b0102 Binary Search Key Contains a unique search key of this recipient, in binary format. Generally, you should not modify this value. NK2Edit automatically generate this key according to the other fields.
      0ffe0003 Integer Object Type The type of the recipient object. 6 = Individual Recipient, 8 = Distribution List Recipient.
      39000003 Integer Display Type The display type of the recipient. 0 = Standard mail user, 1 = Distribution List, 5 = Private Distribution List, 6 = Remote User
      3003001f String Email/Exchange Address Contains the email address for SMTP records, and MS-Exchange address for EX records.
      3002001f String Address Type Contains the address type of the record. SMTP for regular email address, EX for MS-Exchange address, FAX for fax address, and MAPIPDL for private distribution list.
      3001001f String Display Name Contains the display name of the recipient.
      5ff6001f String Recipient Display Name The original display name of the recipient. This property usually contains the same value as 3001001f.
      5ff70102 Binary Recipient EntryID The value of this property is usually identical to 0fff0102.
      6003001f String Drop-Down Name The value of this property is displayed in the AutoComplete drop-down,
      39fe001f String SMTP Address Contains the SMTP address of Exchange record.
      60040003 Integer Record Weight Contains the weight of the record, relative to the other records. Record with higher weight value get a better position in the records list.

1Avoid setting this value to high or changing at all. The larger the file the more chance their is for data corruption.

2Use this for personal experimentation at home or on your laptop. You can trial for 14 days in a corporate environment but a license must be purchased afterwards.

3These entries are actually imported into a hidden message in the default message store.

4I am not sure if this can be done in an App-V environment as the command line and switch cannot be run locally.

Advertisements

2 Responses to “Everything You Wanted (or Didn’t Want) to Know About the Outlook Auto-Complete File”

  1. Paintless Dent Repair…

    […]Everything You Wanted (or Didn’t Want) to Know About the Outlook Auto-Complete File « Windows Explored[…]…

  2. Jace Sheppard said

    Is there a way to swap out or merge the DAT files from different profiles? Ie: Is there any way to avoid losing the MRU if you create a new profile?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: