What is Hidden User Information (Userinfo) List in SharePoint 2010/2013 and how to fix when it causes a site collection to show old User metadata properties in People Picker control or in a Person or Group column?


What is the User Information List in SharePoint? 
 
The User Information List (“/_catalogs/users/simple.aspx” or “_catalogs/users/detail.aspx”) is a hidden list in each site collection that is only visible and accessible to Site Collection Administrators.  The User Information List stores metadata information about a user. Some metadata examples are Display Name (name), Login Name (samAccountName), Department, Picture, Email, SID (determines authorization rights), etc.
 
The User Information List contains lots more user metadata properties other than Name, About Me, (Job) Title, and Department than you can see in the above Detail view display.  You can run the a PowerShell script similar to following example to dump items in the list and get an idea of the other user properties stored in this list.
 
$site = Get-SPSite "http://intranet.contoso.com/sites/abcsite"
$web = $site.OpenWeb()
$list = $web.lists["User Information List"]
$list.Items | fl | Out-File F:\DumpUserInfoList.txt
 
How does user metadata get added to the hidden User Information List? 
 
Whenever you grant a user rights to a Site Collection or when that user creates/updates/deletes any item within a Site Collection, a new item will be created in the User Information List storing some metadata information about that Active Directory (AD) User, if not already there.
 
How does user metadata get subsequently updated in the hidden User Information List? 
 
If you change user account properties in Active Directory and then perform a sync/import, it should import and update the changed property values in the corresponding user profile in SharePoint.  Also, the sync timer job should push user account updates into the userinfo table in the content database (DB) and into the hidden User Information List in the site collection.  I’ve tested this in my own lab by changing the Department and Title properties for a user account in AD and then forcing a Full sync in SharePoint, and it appeared to work as expected. The user property changes were replicated from AD into the user profile, the userinfo table, and into the hidden User Information List in the site collection.

Be aware that A SharePoint Farm Administrator can set policies on each user property in a user profile to help govern how the information in that property can be used, and one relevant policy property is Replicable.  By default when Replicable policy is True, the user profile property's value can be replicated to user information lists in other site collections when its value changes. For a property to be replicated, its default privacy setting must be set to Everyone and the User can override policy must not be selected.
 
However, things can go awry and sometimes certain users’ profile metadata in a User Information List for unknown/mysterious reasons just ceases to get replicated updates from a profile sync run.
 
Where can things go wrong?  SharePoint maintains a mapping between the Profile DB and content DB userinfo table, based on “[Profile DB].[dbo].[UserProfile_Full].SID“ column and “[WSS_Content].[dbo].[UserInfo].tp_systemID” column.  This mapping is leveraged when SharePoint synchronizes the Profile Database and the Content Databases.  Linkages can apparently get broken here sometimes and impact user metadata replication.  But I won’t delve into this less common topic, and instead will cover the most typical scenario.
 
How do I fix user metadata in the hidden User Information List when things go awry? 
 
Set-SPUser -SyncFromAD to fix Name (DisplayName) and E-Mail:
 
If you want to manually force update existing user metadata in a User Information List, You can use "Set-SPUser" cmdlet at the site collection scope with the SyncFromAD parameter.  The SyncFromAD parameter specifies that user information will be synchronized (immediately, in my observation) from the user directory store. Be aware that this cmdlet only updates the Name/DisplayName and E-Mail fields.  It doesn’t touch the Title or Department or other fields. Example PowerShell for a SharePoint 2013 claims-enabled web site…
 
$login= "i:0#.w|dev\TestUser1"
$site= "http://intranet.contoso.com/sites/abcsite"
Set-SPUser -Identity $login -web $site -SyncFromAD
 
Remove-SPUser and manually re-add to fix Title, Department, and other metadata:
 
If there are only few user accounts having inconsistent metadata in the site collection, the easiest fix might be to run the Remove-SPUser cmdlet to remove each user from the site collection (which removes them from User Information List). Then via the SharePoint UI, manually grant the user access again within the site collection (or use New-SPUser cmdlet) to force SharePoint to re-add the user into the User Information List.  From my observation, it appears that SharePoint will refresh the user metadata properties from the user profile after the next profile synchronization runs (you may have to wait for an hour for the sync job to run successfully).  Example PowerShell for a SharePoint 2013 claims-enabled web site...
 
$login= "i:0#.w|dev\TestUser1"
$site= "http://intranet.contoso.com/sites/abcsite"  
Remove-SPUser -Identity $login -web $site
 
Important:   If you plan to remove the user from the site collection, all the user's permissions to this Site Collection are removed. Before you remove the user's permissions and re-add them, make sure you note the user's permissions.  To do this from the SharePoint site collection, you can go to Site Actions> Site Settings > Users and Permissions > Site Permissions > Check Permissions.
 
Manually delete user from All People group and re-add to fix Title, Department, and other metadata:
 
Alternatively, you could delete a user from a site collection by deleting them from the All People group using the SharePoint UI.  If you remove the user from this group, this also removes the user from the userInfo table in the Microsoft SQL Server database. I believe this is some type of soft delete, where a Deleted property is turned on.  When you re-add the user, the user's information is updated in this table.  From my testing it appears that SharePoint will refresh the deleted/re-added user’s metadata properties in the site collection from the user profile after the next profile synchronization runs.
 
Important:   If you plan to delete the user from the All People group, all the user's permissions to this Site Collection are removed. Before you remove the user's permissions and re-add them, make sure you note the user's permissions.  To do this from the SharePoint site collection, you can go to Site Actions> Site Settings > Users and Permissions > Site Permissions > Check Permissions.
 
How do I access the All People group/page in a SharePoint 2013/2010 site collection? 
 
In Microsoft Office SharePoint 2007, you could remove the user from the All People group and re-add them. This option is no longer available in SharePoint 2010/2013. SharePoint 2010/2013 removed the page from navigation, but you can still access the All People page by appending the following to the root URL of the site collection.
 
SharePoint 2013
/_layouts/15/people.aspx?MembershipGroupId=0
 
SharePoint 2010
/_layouts/people.aspx?MembershipGroupId=0&FilterField1=ContentType&FilterValue1=Person
 
 
What is the People Picker control in SharePoint? 
 
The People Picker control is used to search/find and select groups (as well as people and claims).  Where does the picker control pull its display data from?  SharePoint first checks if the user exists in the site collection (hidden User Information List), if it does not then it retrieves the user info from Active Directory and adds the user into the site collection.  People picker behavior is affected by the User Profile to SharePoint synchronization Job; however, it can be influenced by many other factors. 
 
How does the Person or Group column type work?
 
The Person or Group column type in a list/library allows you to select people based on User ID and Login Name using a picker control.  The People Picker control is used to search/find and select groups (as well as people and claims).  Where does the picker control pull its display data from?  The UserID relates to the ID of the user within the site collection. However chances are that not all users are currently members of the site collection. To address this, SharePoint first checks if the user exists in the site collection, if it does not then it retrieves the user info from Active Directory and adds the user into the site collection.  People picker behavior is affected by the User Profile to SharePoint synchronization Job; however, it can be influenced by many other factors.  The Show Field value for a Person or Group column type is obtained from the hidden User Information List in the site collection.

Skip to main content