Originally posted: https://bouncethebox.wordpress.com/2009/05/04/user-information-list-synchronization/
Each and every site collection within SharePoint 2007 maintains its own ‘User Information List’. Users are added to this list automatically the first time they visit the site collection. When the user accesses the site on that first visit. and their name is added to User Information List (UIL), the information is synchronized with the User Profile Database. User object data is grabbed from the User Profile Database (UPD), and all of the blanks are filled in; Display Name, Phone Number, Email Address, etc.
Most folks never really have to mess with the UIL, normally everything works well. However admins become very intimate with the UIL when the synchronization with the UPD breaks. Why is this synchronization so important?
Without this synchronization, users will not be able to sign up for alerts and receive email from the site collection. In addition, the user will never resolve from domain\username to their Display name; e.g. ACME\john.doe to John Doe VP Sales).
SYMPTOMS:
1. You receive a call from folks newly added to the domain stating they are unable to sign up for alerts or receive email from the portal
AND/OR
2. You receive a call from other users stating they receive an error when signing up folks newly added to the domain for alerts;
AND/OR
3. You receive a call that a user or users are seeing “Welcome ACME\john.doe” rather than “Welcome John Doe”
TROUBLESHOOTING:
1. Ensure the user account in question has a profile within the user profile database and that the profile contains information imported from the active directory (AD) user object.
POSSIBLE/KNOWN CAUSES:
In my experience, there are several commonalities that exist within these site collections and broken UPD synchronization;
1. MOSS 2007 Pre-Sp1/Sp1; users who visited a site collection prior to a profile import
2. Site Collections broken out (moved) into new content databases and/or migrated by third party tools such as Metalogix, etc.
3. Site Collections broken out (moved) via stsadm -o mergecontentdb (syntax missing -preparetomove)
A. In addition, this command has documented issues, please See KB 969242 (At the time of this revision, the -mergecontentdb command has been fixed)
B. Database corruption
4. Site Collections renamed, i.e. ‘ACME Day Shift’ to ‘ACME Night Shift’ versus building out a new site collection to begin with or renaming via improper method
5. Corrupt databases not generating event id records and/or fail to appear the Event Application Log or SQL Logs (suspect pages table has records, however they do not appear in the application log; check SQL Suspect Pages table for each database
6. Content databases not detached properly from MOSS and SQL prior to migration from one storage device to another.
7. Content databases, that at least one in time, experienced a full transaction log and users were unable to add, delete or modify information if their site collection fell within that Content Database.
Again, just my personal experience and my issues. However, the list above is the resulted of tests where I was able to duplicate the synchronization error, and the farm was rebuilt with new content databases after each time and each item was duplicated twice out of four attempts. You may not be able to fix the issue, however perhaps if any of the above apply to you, you can avoid it the next time. Yet, just randomly putting this out there.
NOTES:
1. Until the user has a valid profile, there is no information to synchronize; try ACTION 1
2. You can also view the UIL to search out any other accounts that may be suspect!
3. The ‘Limited Access’ permission does not apply to this post, as the user must visit the site collection in order to be added to the UIL.
ACTION(S):
1. If there is not currently a profile for the user, kick off an import and ensure the AD user object data appears within their profile.
a. Once the profile had successfully imported, you will need to manually remove this user from the UIL. For information on how to access and edit the UIL to delete the user, skip to
b. You will need to delete the user from every site collection there is an issue; monotonous, yes. Howeverabout:blankREPORT THIS AD
2. If there is currently a profile for the user, and it contains valid data, then delete the user from the site collection (follow, “HOW TO EDIT THE UIL”)
a. The next time the user accesses the site collection, they will be added to the UIL and the service will attempt to synchronize the data. Normally this process takes about 2-4m, but can take longer; hit F5 or click ‘Refresh’ in 2-4s intervals until you see the domain\user_object resolve to their Display Name.
HOW TO VIEW THE USER INFORMATION LIST:
You can view that list, on each individual site collection, by going to:
Simple View: acme.intranet.com/sites/sitecollection/_catalogs/users/simple.aspx
Detailed View: acme.intranet.com/sites/sitecollection/_catalogs/users/detail.aspx
HOW TO EDIT THE USER INFORMATION LIST:
**NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU**
You can also edit that list in SharePoint Designer, navigate to URL/sites/site collection/_catalogs/users (User Information List)/
You may need to modify the permissions, do so by Right Click On Users (User Information List) -> Properties ->Security Tab ->Click Manage Permissions using the browser
**NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU** **NOT RECOMMENDED – BAD JUJU**
User profiles and the user profile import process exist/and is required mostly for My Sites features and functionality. However, that being said, it’s important to remember that the data within the UPD is bilaterally synchronized with the WSS UIL.
ADDITIONAL SOLUTIONS:
SOLUTION 1: There is a third-party application that can synchronize the ‘User Information List’ with the ‘Profile Database’ Information, it is called Bamboo Solutions – User Profile Sync – v1.4
Unfortunately I refuse to pay for the web part, I prefer to figure out an OTB solution. If anyone finds one, please let me know.
SOLUTION 2: Another thing you can do is query the content database where the site collection resides and modify the values you need to. I think it is safe to say that this process will negatively affect the supportability of your product, so do so at your own risk. This should be the very, very last method you attempt to fix an issue.
1. Backup your content database before you begin.
2. Query against or select the content database the site collection resides in.
QUERY STRING:
UPDATE SET = ‘Desired value of field’
WHERE = ‘search value’
For example, if I wanted to change the display name for someone who is appearing as “ACME\mojo.jojo” in a site collection residing within Main_Content_DB. You would run this query against Main_Content_DB:
–WARNING! You must include the WHERE statement
–to avoid changing all fields in the column to
–the ‘Desired value of field’
UPDATE UserInfo
SET tp_Title = ‘JoJo, Mr. Mojo’
WHERE tp_Login = ‘ACME\mojo.jojo’;
Anyhow, you’ll want to include all apostrophes within each statement, the semi-colon, and again make sure you include the WHERE statement. And always remember, you are never to edit a SharePoint Content Databases directly; as this will negatively affect the supportability of your product
Contributions to this post:
This article was written while supporting United States & Coalition forces and Civilian Personnel actively engaged in military operations and civilian affairs in the Iraq Theatre of Operations (ITO) during Operation Iraqi Freedom (OIF). The following individuals contributed to the content in this post;
Bill Beehner, Lead SharePoint Engineer, Multi-National Corps – Iraq/United States Forces – Iraq, Knowledge Management Office 2007-2009
Hermal Montero, Lead Database Administrator, Multi-National Corps – Iraq/United States Forces – Iraq, Knowledge Management Office 2007-2010
Ronald Stom, Jr., Lead Developer, Multi-National Corps – Iraq/United States Forces – Iraq, Knowledge Management Office 2007-2010
Be kind, be safe and have an outstanding day!
-Bill Beehner