I've added custom properties in User Profile Server (UPS) like Employee Number, Company Code, and Division Code which it's all getting from Active Directory. It syncs fine and I can see these properties populated when I go to Manage User Profiles page.

The custom properties in UPS as setup this way:

Policy Settings: Optional
Default Privacy Setting: Everyone
 Replicable: Yes
Do not allow users to edit values for this property: *selected*
Show in the profile properties section of the user's profile page: *selected*
Show on the Edit Details page

But I want those custom properties to show too when I go to My Settings page (_layouts/userdisp.aspx). I also need to see these fields on the People or Group field types and on the UserInformationList. How can I do this?

I'm on SharePoint 2010 with SP1.

2 Answers 2



Ensure that you have "User can override" unchecked. This is required in addition to the default policy set to "Everyone".

There are a couple timer jobs that handle the synchronization to the User Info List: - User Profile to SharePoint Full Synchronization - User Profile to SharePoint Quick Synchronization

What I learned at BPCUK is that they both look for an "active" flag on the User Info List record. If the user does not have site activity, the sync does not run. You should be able to test this either on an active site (where folks are contributing content) or by adding a list item yourself (which trips the active flag).

Then force run the timer jobs.


I had the similar issue whereby I wanted to get the "Company" property field of the current user and display it on my custom master page via SPServices. My first attempt failed because although the Company custom property was synced from AD in the user profile service app, it is not included in in the user settings page (/_layouts/userdisp.aspx). As Marc Anderson (@sympmarc) pointed out to me, the settings page is simply for anyone who "touches" the site collection, regardless of SharePoint 2010 version. Hence, not MySite.


 var company = $().SPServices.SPGetCurrentUser({
 fieldName: "Company",
 debug: true

Instead you need to make a GetUserProfileByName call


Note if you don't bother with the account name in the second example as I didn't, then it will default to the current user. Now you have the company or whatever custom property you have added to the user profile sync.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.