Where are OC 2007 R2 Recent Contacts stored?

A customer question was raised about wanting to delete the Recent Contacts entry list for users due to some alias changes and migrations. Nobody knew the answer right away and I was pretty sure it would be in the backend database somewhere. Turns out it is kept client side.

If you want to know WHERE the recent contacts are, they are under this path HKEY_CURRENT_USER\Software\Microsoft\Communicator\<sip-uri of user>\GroupStateCacheU\~~

Deleting the ~~ or GroupStateCacheU folders is not sufficient to clear the recent contact list, you must delete the key for the <sip-uri of user>.

You have to exit the client before making the change and all caveats about the impact on directly editing the registry apply – do so at your own risk and testing.

How did they figure this out? I haven’t gotten an answer to that but knowing the answer I know 1 way to do it now – http://www.Sysinternals.com Process Monitor. I added 2 filters the default list, the first one was Process Name is Communicator.exe Include and the second filter was Path Beings With HKCU\software\Microsoft\communicator Include. Deleting the contact in my Recent Contact list didn’t trigger the path we now know about nor did sending an IM to a new contact. It was when I toggled the display of Recent Contacts in the client that I saw the path.

Doing this in reverse is not fair to those who dug on this to begin with but it reinforces things we value – Sysinternals tools and things we know – the path for monitoring user registry settings for communicator.

Have a great weekend