User Profiles and User Information List Synchronization

 

    Lately I have been getting a lot of questions about where user data is stored and how it is synchronized within SharePoint 2007. This inspired me to write this blog post about User Profiles and the User Information List or UserInfo table. I will also do a future post on what happens when a user profile is deleted from MOSS 2007.

     

    User Profiles

    The user profile store in MOSS 2007 contains information about users. User profiles can be created by importing users from a user account directory, or they can be created manually. In most environments Active Directory will be used as the source for creating user profiles. In the MOSS 2007 Shared Service Provider an LDAP import query can be configured that will create user profiles for accounts that are returned from Active Directory by the LDAP query. The user profile imports can be scheduled to  run on a regular basis and they can be either  incremental or full.

    Once a user profile is created additional information about the user can be added to the user profile properties by the user itself, an administrator, a Business Data Catalog data source or an LDAP directory.

    By default data from user profiles is shown in the People Search results, on the My Site and in the User Information list of MOSS and WSS sites.

     

    User Information List

    All MOSS 2007 and WSS 3.0 sites have a user information list. The information in the user information list is stored in the UserInfo table in the content database of the site. A user gets added to the user information list  when he or she has accesses the site for the first time. In the user information list a user's email address, login name and name are stored. MOSS will make sure that user profile property information for those fields for users that are added to the user information list is sent to the user

    information list.  The image below shows an overview of the user profile architecture in MOSS 2007.

     

     User Profile Architecture

     

    Synchronizing user profile data to the user information list

    Keeping the information in the user information lists up to data is a task that is handled by the Profile Synchronization and the Quick Profile Synchronization timer jobs. By default the first job runs once every hour, the second one runs every couple of minutes and is incremental. The first time user data is replicated from the user profile to the user information list of a site a full update is needed. So the Profile Synchronization job needs to run in order to get the data replicated to the site and this may take up to an hour. If information about a user is already stored in the user information list and the information changes in the user profile it will be synchronized with the data in the site collection by the  Quick Profile Synchronization job.

     

    Profile Sync Jobs

     

    You can also kick off the profile synchronization jobs by running the stsadm sync command.

     

     stsadm -o sync

     

    If you believe that information is not synced between the user profiles and the user information lists in one or more sites you can request a list of content databases that have not been synchronized for x number of days by using the following stsadm sync command.

     

    stsadm -o sync -listolddatabases <x number of days>

     

    If one or more content databases show up in this list you can clean up the sync list so they can be added to the list again.

     

    stsadm -o sync -deleteolddatabases <x number of days>

     

    You can also use the sync command to change the schedule for the synchronization job.

    For more information on the stsadm sync command have a look here http://technet.microsoft.com/en-us/library/cc263196.aspx.

Comments -
  1. Gravatar

    Hi,
    Nice post. Maybe it's good to also tell about the differences between the 2 user profiles (the WSS Profile and Moss Profile) and the way you can access them from User -> my settings page and Moss through the People Search or Mysite. In my experience a lot of customers get confused between the differences and why they are not the same and can vary with different information... Always difficult to explain is my experience :-)

      
  2. Gravatar

    Hi Peter,

    The WSS Profile which you refer to is actually the information from the User Information List displayed in an application page (_layouts/userdisp.aspx). It shows you the information that is stored for you in the user information list on the site where you are at the moment you click the My Settings link.

      
  3. Gravatar

    Thanks for this, Mirjam. I get asked about this a lot, so it's nice to have a plain-English explanation. Cool graphic, too!

      
  4. Gravatar

    Hi. I have been working with this during the last week and I have made a discovery that I haven't been able to read find anywhere or google. In our setup we had set the content databases to Offline to prevent having more sitecollections in them. But when a site content db is offline, it will not have the userinfo synchronized.

    - Kaj Bonfils / eqa

      
  5. Gravatar

    Hi Kaj,

    You are right. If you take a content database offline you are basically pausing it. So SharePoint can't use the content database when it's offline. This doesn't only mean that no new sites can be created in that content database, it also means that SharePoint can't use the database for synchronizing user data.

    Regards,
    Mirjam

      
  6. Gravatar

    Hi Bart,

    The _catalog/users list is displaying the user information list. The people.aspx page is used for setting permissions, this page always has an appendix behind the aspx? (like membership=5) and as far as I know never displays the complete user information list. However I do think that the information displayed there is obtained from the user information list.

    Cheers,
    Mirjam

      
  7. Gravatar

    Hi Mirjam,

    Thak's for this fantastic post. In my opinion it's very helpfull for our "Worldwide SharePoint Community". Some times somebedy (as me) have problems with synchronisation mosss platforms users and for example AD and managers want synchronization. Especialy (in my cases) with temporary workers stored in AD. Thank's again.

    PS. Beautiful name

      
  8. Gravatar

    I do import userprofiles from an AD using an LDAP connection.
    I added LDAP connection and Memebership providers to all required config files (Extranet, Central Admin, SSP). When I login into my site using windows authentication and go to Mysettings, I could see the all the atrributes values (say Department = IT, phone = 1234567890). Now when I login into my application using FBA, go to Mysetting .. could not see the attribute values (Department,Phone..) I could just see username and Account... Also when I go to SSP--> View user Profile --> I see the imported data there ... I tried doing sync etc etc
    I appreciate if someone can help me here...

      
  9. Gravatar

    Hi Mehul P,

    A user profile is connected to a user account. Since your forms based account is a different account than your AD account (even if the username is the same!) that account will have it's own user profile.
    So...if you have an AD account and a forms based account you have 2 user profiles.

    Hope this helps.

    Mirjam

      
  10. Gravatar

    HI,

    This is really very nice post.

    I have one problem. In my case title in User Information List is mapped to User Emp ID in User Profile. I want to change that mapping so that Title should map to Job Title in User Profile. Is it possible to do like this? Can you please help?

      
  11. Gravatar

    Hello,
    I am trying to map a user pofile property to a user information site.
    How can i do that.Thx for replying.

      
  12. Gravatar

    Hi Joseph,

    If you want a user profile property to show up in the user information lists of site collection you can enable replication for this property in the user profile property management page in the Shared Service Provider.

    Mirjam

      
  13. Gravatar

    Hi Shekhar,

    The behaviour you're describing is probably caused by a property mapping. If you go into the Search Administration from the Shared Service Provider site you can select Managed Properties. Look for the Title property and see what Crawled properties are mapped to it. You will probably find the Emp ID property in here. Remove this. Add the Job Title property to the mappings. That should fix your problem.

    Hope this helps.

    Mirjam

      
  14. Gravatar

    hi
    with stsadm command is it possible to migrate 'user database' from FBA in WSS to Active Directory in MOSS??
    Do you have any article which lists the things i have to take care of or issues which I may face.

    and are there any free tool available to migrate the user database from wss to moss?

    thx
    saumil
    india

      
  15. Gravatar

    Hi Saumil,

    There is no simple solution or STSADM command to migrate users from FBA to Active Directory. The best way to do this is probably be starting with an export of users from FBA to, for instance, an XML document. Next you can use PowerShell to create all FBA users in AD. You could use the Quest PowerShell AD tools to help you with that.
    If your FBA web application isn't already extended to a web application that uses Windows Authentication you will have to extend it to do so.
    After that you will have to recreate the permissions the FBA users had for the AD users. There is no quick or easy way to do this. I'm afraid you will have to write a custom script to do this.

    The upgrade from WSS to MOSS has nothing to do with this. You can do that separately. I would strongly advice to do one step at a time. And not upgrade the environment and migrate the users at the same time.

    Hope this helps.

      
  16. Gravatar

    Hi,

    It's a great explanation. However, I still couldn't resolve my problem although I had tried out what you had described to run command stsadm -o sync to sync user profiles from AD to MOSS. I couldn't search the user profiles which existed in my SSP from my site when I tried to add the user into my Peoples & Groups. Do you have any idea how to resolve it?

    Thanks & regards,
    shuyi

      
  17. Gravatar

    I have an public site using FBA with a user store of over 17,000 users where we have added only about 200 of those users into SharePoint groups. Occasionally one of their emails changes, and I need that to change in SharePoint, but it will not do that automatically. Is there a way OOTB to do that? Using profile sync in Central Admin? Thanks!

      
  18. Gravatar

    Hi Brendan,

    Unfortunately there is no out of the box way to do this. You can manually or through code create user profiles for FBA users, but the profile sync won't work for them.
    You will have to develop some sort of custom solution I'm afraid. Maybe BCS or something like Nintex Workflow could help you.

    Mirjam

      
  19. Gravatar

    Hi

    It is a nice post and helped me to understand the difference. But It didn't solve my purpose. I changed the mapping of Office field in User profiles to Company as it was office location before and after syncronization , in user information list it is showing both Company name and Office location. any clues??????

      
  20. Gravatar

    Very useful! Thanks a lot!

    One question though. How come there's no "Add this"-like functionality, would be very useful :)

      
  21. Gravatar

    Hi Mirjam,
    thanks for your nice post - makes understanding things going on.
    I have still a Problem: Syncronisation from AD to the User Profile Sore Works fine, but the QuickSync to the User Information List in my Sites is not synched with the User Profile Store.
    I tried several times to delete the 'olddatabases' - this works - no olddatabases are present after doing so, but each time , the sync-timerjob runs, there are newly created 'olddatabases'.
    In my understanding, this means that the synch to the content-dbs is not working, and contolling User-Infornmation confirms this.
    But what can I do to solve this issue?
    Any Help would be appreciated!
    Thanks in advance
    Andreas

      
  22. Gravatar

    Hi Andreas,

    I have no idea what's wrong with your databases. I hope you can find the answer somewhere else.
    You could try posting your question on the SharePoint forums:
    social.msdn.microsoft.com/.../sharepoint2010

    Mirjam

      
  23. Gravatar

    Hi Mirjam,

    Very clear post. Thanks.
    I have one question though. I am experiencing an odd behaviour of our user profiles. We have 500+ user profiles and they all have a mysite. When I use people search to look up a person I see all the details that the user has filled in like job title, name etc. But when I click on the name I am directed to his mysite (mysite/Person.aspx) and it doesn't show any of the fields. All the details are gone. How is this possible or what do I have to do? I've already ran a stsadm -o sync command. Didn't help.

    Thanks, Kevin

      
  24. Gravatar

    Hi Mirjam,

    We are running MOSS 2007 & occasionally we encounter a situation where a 'terminated user' within Active Directory does not get removed from My Site using the 'user profile import'. Any ideas why ?

    Since I haven't figured out the reason, I usually manually delete the user from within SSP.

    Thanks,
    Ravi

      
  25. Gravatar

    Hi Kevin,

    User Profile fields aren't published on the my site by default.
    On the user profile property page you can on a per property basis select "Show in the profile properties section of the user's profile page".
    If you select that the properties should show up on the user's person.aspx page.

    Mirjam

      
  26. Gravatar

    Hi Ravi,

    The thing responsible for deleting user profiles for deleted users is the User Profile Clean Up job. This is a timer job that runs every hour. Once this job has run it will remove the user as the site collection admin of his my site and instead set the secondary site collection admin as the admin. It won't delete the my site. However it will delete the user's user profile (or at least it should).

    Hope that helps.

    Mirjam

      
  27. Gravatar

    Hi Mirjam, I have managed extract user information from the list by using the people picker function, however the location information is not listed which is important for my needs, is there a way how to have this in the default information?

      
  28. Gravatar

    Hi Kris,

    You can get properties to appear in the user information list by going into the User Profile Service Application in Central Administration and clicking on Manage User Properties. Got to the property that you want to appear in the user information list and select Edit. Now select Replicable in the Policy Settings.

    After the "User Profile Service Application - User Profile to SharePoint Full Synchronization" or the "User Profile Service Application - User Profile to SharePoint Quick Synchronization" timer jobs have run the property should show up in the user information lists.
    However I don't think you'll be able to use it in the peope picker.

      
  29. Gravatar

    Thanks. This is what I was looking for. I presume this mechanisme hasn't changed in SP2010, did it?

      
  30. Gravatar

    Hi Matthias,

    Most of this is still the same in SharePoint 2010 indeed.

    Regards,
    Mirjam

      
  31. Gravatar

    Hi mirjam, i want to sync fba users in sharepoint user profile synchronization.I implemented FBA Using Ldap Provider in my site. After logging in site using fba when click My Profile then it goes to my user profile site and gives error user not found because of form auth user not sync in user profile database.

    so how sync the Form auth user in sharepoint 2010 user profile service. is there any other approach without using LDIF... plz help!!

      
  32. Gravatar

    Hi Ankit,

    The only option you have is using custom code. If you search CodePlex for "FBA user profile sharepoint" you will probably find something that's useful to you.

    Good luck!

    Mirjam

      
  33. Gravatar

    Hi all,

    PLease help me out in my scenario as below.

    I have created one property as replicable and mapped. so after full import things are working fine as I checked in user profiles of users and values for that property is reflecting...
    But when I saw in Userinfo list of sites column gets added but no values in that ......................any suggestions?

      
  34. Gravatar

    Si trabajan con las opciones de “My Site” en SharePoint 2007, es posible que hayan experimentado alg&#250;n

      
  35. Gravatar

    In my case things are working fine but after few days I realized that replicable properties itself are not coming in the user info list when I am creting new sites and niether the synch of user info list working though I have tried running sync commands several times but no luck still pretty amazed pepople have issues with data not in sych but in mycase replicable properties itself not coming up as a column in user info list.

    any help gretaly appreceiated

      
  36. Gravatar

    Hi Mirjam,
    Thanks for a nice post . I have an question , how do i add job title column from user profile to the user information list. i believe the user information details on a site collection pulls data from the user information list . so my requirement is to display the job title column in the user information as the same the title column is displaying.Can you please help me .

    Thanks For Your Help ......:)

      
  37. Gravatar

    Hi Deepak,

    On the details page of the property in you can select that you want the property to be "Replicable". This will propagate the value of the property to the user information list in the site collections.
    More information can be found here:
    technet.microsoft.com/en-us/library/ee721054.aspx

    Hope that helps.

    Mirjam

      
  38. Gravatar

    Hi Mirjam,
    Thanks for the excellent post. I do have some questions that you may be able to help me with.

    Environment
    SharePoint 2010 server in university.
    *Don't have replicate directory changes permission so I can't start sync service.
    Populated Profiles using XML file and Powershell.
    Selected Claims, Windows Integrated, Negotiate Kerberos on Web apps.

    *most posts refer to profile sync as one thing, but this confuses me since the process by which the userllist is updated seems to be lumped in with the user profile sync. I think it is a different service or timer job, is it?


    One Problem
    I display a custom contact list on a page in a web part view. The list has a people column configured to show picture, but the picture does not display. If you click the link on the persons name, their profile page opens with their picture. How do I get the picture to display in the list. Does the picture property have to sync to the userlist? How can I force that (tried stsadm -o sync).

    Perhaps part of my problem is..
    I have lots of duplicates in my userlist. I created a sp group for my department with stsadm. The first time I did it, it appeared to work (because a group was created with all the users) but this group did not work for security.

    I created a different group containing the same people, only this time I prepended "i:0#.w|" to the domain\userid. Apparently this was required to use the identities for security. When I was done, I had two groups containing the same users, one worked for security the other didn't. I think this is why I have dupes in my userlist.

    Q: I would like to delete all the users from my userlist and recreate it, do you know how to do this?

    Thanks,

    Greg

      
  39. Gravatar

    In our case, we are a) not seeing all the users we expect in the user info table and b) not seeing the user's account name updated when it changes.

    These are problems for us due to our use of InfoPath and a vendor enhanced workflow product.

    InfoPath's getName() uses the user's accountname, as does the vendor workflow task web part.

    The users not in the userinfo table cannot successfully use the InfoPath apps and users who have changed names, etc. also have problems because their accountname is something other than their current login name.

    The timer jobs are all running to 100% successful.

      
Comments have been closed on this topic.