Tuesday, May 25, 2010

Setting up the PictureURL User Profile Property using Forefront Synchronization Service Manager in SharePoint 2010

Scenario:

Mapping the User Profile property "PictureURL" is not a straight forward process in SharePoint 2010. In our case, we needed to map this property to the attribute extensionAttribute3.

It is not a straight forward process like the procedure we generally follow to set any other property mapping beacause the attribute "extensionAttribute3" does not exist in the list of mappable attributes. We had to follow the same procedure whenever we could not find the desired attribute in the list of mappable attributes.



Resolution:

In order to setup the mapping, use Forefront Synchronization Service Manager. (It is found at \Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\ miisclient.exe)



Navigate to Metaverse Designer and choose person in the list below:



If extensionAttribute3 is not found in the list of available attributes, click on “Add Attribute” that appears as one of the actions in the right hand pane. If it does not appear in the available attributes list, click the “New Attribute” button.



Make sure that “Indexed” is checked and type in the value “extensionAttribute3” for the Attribute Name.
Now we need to setup the Attribute Flow. In order to do that, navigate to “Management Agents” tab



Choose the desired “Active Directory Domain Service Agent” (MOSSAD-ACTIVE DIRECTORY) and navigate to its properties. Navigate to “Select Attributes” section. If you don’t see extensionAttribute3 in the list, check “Show All” and you will see the extensionAttribute3 in the list. Make sure that it is checked.



Navigate to “Configure Attribute Flow” and setup attribute flow as below:



Now choose the Extensible Connectivity Agent (MOSS-64c01ea7-862d-4c64-969d-8e5e52457cdb)
Navigate to Properties > Configure Attributes. If “PictureURL” is not found in the list of attributes, add it by clicking on “New”.



Navigate to “Define Object Types”. If you don’t see the “PictureURL” attribute in the list, click on “Edit” and then add “PictureURL” from the list of available attributes to the list of “May have attributes”



Navigate to “Configure Attribute Flow” and setup mapping as below:



Now you should be able to see that the Picture attribute is mapped to extensionAttribute3 in the “Edit Profile Property” UI screen.



Thanks a lot to our Practice Lead David Perkinson for all the help he offered me while setting up the search configuration.

14 comments:

  1. Chaitanya,

    Thanks for nice article!!
    I followed your steps, but still could not get the pictures from AD, I mapped the actual attribute in our AD for Pictures.. does the picture URL attribute should be binary right?

    thank you ..

    Neel

    ReplyDelete
  2. I our set up we do not have full url for the image, we just store the image name x.jpg, in active directory, but it is stored on file server, we prefix the url for the image to retrieve, and it is string type not url type

    help me out

    thanks

    ReplyDelete
  3. Where is the actual data stored in sharepoint database table?

    ReplyDelete
  4. Hi,

    If you would like to synchronize the user profile photo (not the URL only but the binary image) to and from the thumbnailPhoto Active Directory property, you might find the following link useful:
    Synchronizing user image between Active Directory and SharePoint profile
    http://pholpar.wordpress.com/2010/08/10/synchronizing-user-image-between-active-directory-and-sharepoint-profile/

    Peter

    ReplyDelete
  5. Nice tutorial but not everyone wants or has Forefront for this. For those who need a command-line, sync-all batch solution, we wrote a free tool for this, no license or registering needed, source code on request. Since I came across this article when I researched into this issue, I felt I should share this here too.

    ReplyDelete
  6. You should have Forefront Synchronization Service Manager as it's installed with sharepoint and used for user synchronisation.
    You'll find it in "C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\miisclient.exe"

    ReplyDelete
  7. Hi Chaitanya,


    The operation that you detail above will render the SPS2010 environment into an unsupported state. Please remove this article or put a big red warning at the beginning of it.

    Many thanks,
    Zsolt Illés

    ReplyDelete
  8. Sorry. Forgot to send my contact details, should you want to discuss the topic.

    Zsolt Illés
    zsolti@microsoft.com

    ReplyDelete
  9. How is this unsupported? This isn't a hack.

    ReplyDelete
  10. I have asked an MS Support engineer, while working on a different issue, if the steps above will render the environment into an unsupported state and he said it will not.

    ReplyDelete
  11. Thank you so much. You hepled me out of a tight spot!

    ReplyDelete
  12. Hi Chaitanya,
    Nice article..does this same approach can be used to change the welcome name on sites? ex:the welcome name shows as per AD "Madala Chaitu" where as my requiremet is it shall show as "Chaitu Madala". I can not change all the AD users...but wanted some thing in this way.is it possible, if so would appritiate if u can publish a blog or mail me on rajaforlani@gmail.com

    Thanks you.

    ReplyDelete
  13. I have followed your steps and everything looks good, the property is showing up correctly and it appears to be mapped. Unfortunately, I do not see any photo in the user profile or in the people search. What did I miss?

    ReplyDelete
  14. This was very helpful! My question: How do I reverse this process so that the users can update their picture in SharePoint and the change is reflected in Active Directory, Exchange, Lync, etc. I have tried simply reversing the flow directions in each "Configure Attribute Flow" setting, but that does not get the job done.

    ReplyDelete