Wednesday, July 8, 2009

Exchange 2010 and NK2 Files

Exchange 2010 now provides a server side cache for auto-completion of e-mail addresses. In previous versions such as exchange 2003 and exchange 2007 auto-complete data was stored locally in the outlook profile on the local PC in an NK2 file. If the users outlook profile was ever recreated, all their auto complete data was lost.

Because this auto complete data is stored on the server, it is available to the user regardless which PC they are using. Exchange 2010 also makes this auto complete data available to mobile devices running Windows Mobile Device version 6.5 or higher.

To import your NK2 files into Outlook 2010 please see:


  1. Clint - thanks for this info. We are running Outlook 2010 Beta against Exchange 2003 and many of us have sisues where only certain names don't autocomplete. There is no NK2 files on our Windows 7 machines anymore since going over to OL2010. Seems to me Exch 2003 is storing this cache, but do you perhaps know how to fix issue or repair this cache now that it is in the Message Store ?

  2. To import your NK2 file all you have to do is use NK2View software then export to csv. Import the file to the Suggested Contacts in Outlook 2010 (or main contacts or full GAL). Then open a new email and put in the TO: section ALL contacts in the suggested contacts (or main contacts or full GAL). Then wihtout hitting send just close and don't save the unsent email. Then open a new email again and you'll see it worked. Good luck.

    1. Not an IT guy...and this totally fixed my problem!

  3. I have a problem where outlook 2010 won't pick up contacts from my exchange contacts. Even previously used email addresses, which normally get stored in the nk2 file, don't come back when I close outlook down. All my aliases are gone. Why is this?

  4. Outlook 2010 extends the schema of the users mailbox to include cached credentials. If you upgrade outlook 2003/2007 to Outloo 2010 it will import your NK2 file into your mailbox cached credentials as part of the upgrade process.

    What I want to make clear is it is outlook that makes changes to the users mailbox, NOT exchange.

    However Exchange 2010 is required for advanced functionality, for example cached credentials can be made available in OWA as well as Outlook now!

    Maurice I'm guessing you did not perform an upgrade properally?

  5. Hi Clint, Is there a way to import the addresses of the NK2 file into contacts? Or is there a way to automatically insert into contacts all the incoming mail? the addresses i mean.

  6. Hi Petros not easily. However it can be done... there is a handy tool called nk2view created by Nir Sofer available from:

    This allows you to view an nk2 file and even export the contents to a txt file. You can then format using excel into a csv file which you could then import into outlook. See:

  7. The problem I am having is even after I type in an email address for someone at work (and send it), I still don't have the email address show up when I begin typing a new email to that same person. However, I do get suggested email addresses for people in my local contacts folder (regardless of if I ever sent them an email in 2010). Is anyone else not seeing email addresses show up even after sending an email to that person?

  8. Kevin are you using outlook 2010?

  9. Yes, I am using the most current beta version of Office 2010 Professional. If I type in a name of someone at work, Outlook will search and find them in the Exchange directory and I am able to send the email with no problem. But if I open up a new email message and begin typing the same name, it will not show up in the auto pick. We are running Exchange 2003, so maybe that is part of the problem?

  10. Hi Kevin,

    I have not seen Outlook 2010 cache functionality work on a 2003 mailbox server, however I have on a 2007 mailbox server.

    I will find out from Microsoft if this works on Exchange 2003 mailbox servers and get back to you.


  11. Clint,

    I uninstalled Office 2010, and did a clean re-install and it now appears that Outlook is remembering my email addresses. Not sure why that made a difference.

    Another thing I have found is if you have a person who is in the global address book, but is also in your personal contact list, the cache seems to only remember the personal contact information. So if I have Doe, John in the global book, and John, Doe in the personal contact list, the cache will never remember Doe, John, only John Doe. Hopefully Microsft will correct this problem in the future.

  12. Hi Kevin, thanks for that. I did contact Microsoft about your enquiry but I have been flat out the past week and a bit so I didnt have time to chase it. Glad you found a workaround.

  13. Clint,

    Was just reading this and wondered if you had any ideas on an issue I'm facing. There has been a recent upgrade, and users are now using OWA 2010 to access their e-mail.

    I have one user who wants access to their old NK2. Similar to one of the above questions, I want to import this data so it will be available for the user. However, they are using OWA and not Outlook, so I suspect any import of data would be server side.

    Any ideas?

  14. Ian,

    There is no tools on the exchange server side Microsoft has made that I am aware of yet. What you need to do is:

    1. Setup a client workstation, virtual or physical with Outlook 2007.

    2. Setup the users outlook profile on the workstation and copy the outlook.nk2 file containing the cached contacts to the right location.

    3. Close and reopen outlook 2007, verify the contacts cached contacts are working correctly.

    4. Upgrade Outlook 2007 to Outlook 2010 - you will need to download the beta copy.

    5. Once updated - verify the contacts are coming up under the Suggested Contacts section of the address book. It should look like this:

  15. Clint,

    Will this also work (I don't see why not other than the upgrade path) with Outlook 2003? The user still has this natively installed on their laptop so would prove a lot easier. If it has to be Outlook 2007 let me know, as we have a virtual XP box setup in HyperV and I'll use that instead.


  16. Hi Ian,

    I have not upgraded Outlook 2003 to 2010 before. However I have upgraded 2007 and 2010 and that worked. Please test Outlook 2003 to 2010 and let me know :)


  17. This post two down from the top worked 100% and after an hour of searching is the only solution i found to migrate autocomplete addresses in an NK2 file from Outlook 2007 to Outlook 2010 Beta where 2010 was a clean install. Thank you.

    Anonymous said...

    To import your NK2 file all you have to do is use NK2View software then export to csv. Import the file to the Suggested Contacts in Outlook 2010 (or main contacts or full GAL). Then open a new email and put in the TO: section ALL contacts in the suggested contacts (or main contacts or full GAL). Then wihtout hitting send just close and don't save the unsent email. Then open a new email again and you'll see it worked. Good luck.
    December 1, 2009 10:50 PM

  18. Thank you to the last Anonymous poster. That tip really helped me get my old NK2 file working. I think it's crazy that Outlook 2010 does not import NK2 files when doing an upgrade from 2007.

    I'm really struggling with 2010. It's gone into offline mode and there isn't even a button to force it to go online! :-(

    Gary F.

  19. Update: The fix I commented about (above) only remains in place until I reboot my computer. So I have to do it once every time I boot up! I will now try what Microsoft suggest:

    Gary F.

  20. Thanks heaps for this KB article Gary!!!

  21. Export messages and folders from Thunderbird to Outlook / Outlook Express / Windows Mail

  22. here is a helpful little article in how to migrate the .nk2 file from outlook 2003 or 2007 to Outlook 2010 in just 6 steps and only takes 5 to 10 minutes...“suggested-contacts”-from-microsoft-outlook-2003-or-2007-to-microsoft-outlook-2010/

  23. How do I import my dk2 files into my new profile using miscrosoft exchange server?

  24. We recently upgraded from Exchange 2007 to 2010 but our users have lost all of the autocomplete's from OWA. We've manually added these back in for one user by creating a new mail then adding these in from contacts but the autocomplete only seems to be remembering the addresses for so long before completely disappearing. User emailed people on Saturday which today weren't showing up in OWA. Any ideas? We've tried importing the NK2 file into Outlook 2010 but this doesn't seem to have worked either.

  25. I loaded Outlook 2010 to some of the Windows 7 in the office but in the past whenever i needed to change an email entry in people's Outlook i just opened the NK2 file and made the change. But now there is no NK2 so how can i edit email addresses?

  26. We have a FREE tool to rebuild your NK2 Cache for Outlook.

    Easy to use and 100% free

  27. Hi Clint,

    Thanks for this article. We had a number of email addresses that were pointing to the wrong users (it was a Novell to EXCH migration!). Now that we have rectified these changes in Exchange, the old email addresses appear when a user is sending a mail via OWA in the drop down list (NK2).

    Is there any way we can refresh this on the Exchange side so the updated addresses show instead of the previous?

    Thanks in advance

  28. Hi Clint,

    I have 3 Outlook 2010 clients on Exchange 2007 / SBS 2008 whose autocomplete ONLY works with messages originated in Outlook. Create a new Outlook Message--good.
    Use Word 2010's Save & Send|Email as Attachment and we get no autocomplete support

  29. I am running windows 7 x64. I installed Microsoft outlook 2010 profressional. Everything has been working great on it for the past 2 weeks except when sending an e-mail to somebody outlook dosn't automatically remember the email address of the individual i'm sending the email to when i start typing in their name. It will only remember it if i send them an e-mail for the 2nd time. If i close the application and re-open it i have the same issue all over again. I saved the contact in my address book and still same issue. Any ideas?

  30. How would one move an NK2 file from a local machine to Exchange *without* using Outlook?

    I have users in a sattelite office (their computers are not domain computers but the users have domain accounts setup so that they can have email accounts on Exchange 2010) that used to use Outlook POP3 to get their email, but that now exclusively use OWA. Is it possible to move their local NK2 files to the Exchange server?
    Again, any solution that involves using Outlook will not work, as they are satellite users and not directly connected to Exchange (and they don't use Outlook, only OWA).

  31. Rob - you need to read more of the posts here.
    Exchange2010 has a new subset of the user's local contacts called Suggested Contacts.

    You could start an Outlook session as one of your Satellite users, and copy the CSV of SMTP addresses extracted from their old NK2 file into a new message TO field, then close the message after TABing away from the TO field, as that should cache all said addresses in their mailbox Suggested Contacts folder...
    OR you could install OL2007 on a test PC, copy the NK2 file into standard location for the satellite user profile and then upgrade to OL2010, which should auto-import the NK2 data as Clint specified above.

    OR you could follow his other post he links to, running the command outlook.exe /importnk2

    Henceforth, your OWA user should have the populated Suggested Contacts folder !
    Probably quite a laborous job if you have a lot of satellite users !

  32. Anyone had problems with piecemeal migration to Exchange2010, where users still on the Exch2003 mailstores have NK2 EX entries referencing the 2003 Admin Group ?

    What can be done about it, other than
    a] migrate faster !
    b] edit every un-migrated user's NK2 file ?


  33. Hi, Clint. We have a slightly different problem with the NK2 data. We're on Exchange 2010. Somehow, a user's NK2 file had a corrupt email address in it for somebody else in our company. Apparently, that corrupt address got synced up to the exchange server. We used NK2Edit to remove it from the user's local NK2 file, but the Exchange server's NK2 cache for that user is still corrupt. When he sends from OWA, the message bounces due to a bad address. Any suggestions/instructions for clearing the NK2 cache on the server side?

    Any/all help appreciated.