Last week we outlined a problem – trying to standardize Lync contact photos using photos uploaded in AD. But a sync error has prevented contact photos from displaying in Lync clients.
One fix, while useful (and successful in a few instances), didn’t work 100%. So we tried more fixes.
These are what we did next.
(Oh, and one thing: If you have an address book sync error, I recommend employing the fixes in the order we’ve put them. Some of them build on previous fixes. Others involve some deeper systems administration, and you risk some secondary problems. Always backup beforehand!)
Sync Fix #2: Add an Entry to Client Registries To Speed Up GalContacts Re-Download
If deleting the local address book files didn’t work for you, try this step next. Add the following entry to every client registry:
Location – [HKEY_CURRENT_USERSoftwarePoliciesMicrosoftCommunicator]
New DWORD Value – “GalDownloadInitialDelay”
Value Data = 00000000
Location – [HKEY_CURRENT_USERSoftwareWow6432NodePoliciesMicrosoftCommunicator]
New DWORD value – “GalDownloadInitialDelay”
Value Data = 00000000
Why? This helps Sync Fix #1 ‘take’. As I said last time, deleting GalContacts.db and GalContacts.db.idx makes Lync 2010 re-download them from the server. But Lync 2010 can take its precious time doing that, if it wants. Adding a registry entry like this eliminates any delay in the refresh.
Sync Fix #3: Use Update-CsUserDatabase to Force-Update the Lync Back-End
Update-CsUserDatabase is a PowerShell cmdlet for updating Lync’s user database.
From TechNet’s description:
“More often than not, the automatic synch between the user database and Active Directory will keep the information in the user database up to date. However, it is possible that a problem might occur that prevents this automatic synchronization from taking place. In a case such as that, you can use the Update-CsUserDatabase cmdlet to force the user database to refresh its contents by re-reading all of the user information stored in Active Directory.”
To use it, enter “Update-CsUserDatabase” at a PowerShell prompt. Optional modifiers include -Fqdn [if you want to specifically identify the computer hosting the user database] and -Force [which suppresses any non-fatal error messages].
Sync Fix #4: Restore the Address Book Service to Default Configuration
Still don’t see contact photos? You might want to start over, by restoring the Address Book service to its default attributes.
However, if you want to do this, DON’T use the ABSConfig.exe tool in the Lync Server Resource Kit! It will reset the RTC database to OCS default, not Lync.
Instead, go to one of these blog posts:
Restore Lync ABS Default Configuration – Waveformation Blog
Lync Server 2010 – ABSConfig Issue
- Run the SQL script they’ve posted in a new query on the CMS database. (Choose either one; they’re the same.)
- Then, run the Update-CsUserDatabase cmdlet from Fix #3.
- Once it’s completed, run Update-CsAddressBook.
The Lync Address Book Services should be back to default. And (hopefully) your contact details – including photos – should display for all clients.
You might lose some contact data in this process. So run a backup (maybe to SkyDrive?) first, just in case.
At this point, if contact photos are still not displaying, it’s not an issue of delayed synchronization. There is a communication error.
As it turns out, Sync Fix #3 was the one that did have an effect for us. #2 and #4 didn’t appear to do anything good OR bad (in this configuration).
Now we had the internal Lync users updated. Contact photos were standardized.
Then someone reported a problem from outside. External users still couldn’t see updated photos. Worse, they still had the ‘Cannot Synchronize Address Book’ error.
Onward, to more fixes!
(Please note: we’re progressing through these fixes one at a time. If you’re in a similar situation, and a certain fix solves your synchronization issue, stop there!
You don’t need to do every fix we’re posting. Look for what works in your Lync Server, and go with that.)