There are many blogs out there explaining the various locations of user properties in SharePoint. Mainly the UPA and the site collections hidden list called the User Information list (http://<SiteCollectionUrl>/_catalogs/users/detail.aspx)
When a user hits this site collection, they will automatically get a profile entry in this list. Ok, great. But you have profile properties in two places now, the site collection(s) and the User Profile Service Application; how are you supposed to keep them in sync?
As it turns out, SharePoint thought of that and gives us two timer jobs to do exactly that. These timer jobs are the User Profile to SharePoint Full Synchronization, and the User Profile to SharePoint Quick Synchronization.
Nice, were good then. Ok, so what happens when they don’t sync?
I recently did a migration where we moved 2007 databases to a 2010 farm. The profiles moved over fine as did the permissions. However neither the quick or full sync, would work. It did at one point, but promptly stopped. No amount of manually running the timer job made a slight bit of difference.
No problem, I’m sure there’s a PowerShell script for that. Nope. Couldn’t find anything.
So how does SharePoint keep the site collection user lists and the UPA profiles in sync?
When the timer job updates the site collections with the profile properties, it maintains the sync details in a table. Each database will have a sync table containing this information. Stsadm.exe provides a command (sync) to view these tables:
Stsadm.exe –o sync –listolddatabases 0
This will display all the databases and when they have been sync’d last.
The sync command also allows you to clear these tables:
Stsadm.exe –o sync –deleteolddatabases 0
Funny thing is it doesn’t actually delete databases, just the sync info. The team that named this param were having a right laugh.
Anyways, running this will basically tell the timer jobs that they have never sync’d and force them to carry on as if it’s the first time.
Make your way over to the timer Jobs page under Monitoring in Central Admin and fire off the User Profile to SharePoint Full Synchronization job. It will take a lot longer to run this time and should fix the sync issue.
So once again stsadm.exe comes to the rescue.
If that still doesn’t’ work, you can try Gary Lapointes blog on re-writing them using PowerShell.
SharePoint Build: 2010 SP1 June CU refresh (14.0.6109.5002)