Shared Points

items of some interest

SharePoint - import a picture from AD for the user profile

SharePoint - import a picture from AD for the user profile

  • Comments 15
  • Likes

Consider the following scenario.

 You have JPG pictures in AD, stored with the users thumbnailPhoto attribute.
 You try to import pictures for a user profile from the Active Directory thumbnailPhoto attribute,
 to store within the Picture attribute in Microsoft SharePoint Server 2010.

 You have set up an import Picture URL mapping.
 User Profile synch and mysites are configured and working fine.
 Then, you perform a full synchronization in the SharePoint server.

In this scenario, the pictures are NOT added to the user profile in the SharePoint server.
(easy test - look at your MySite and select My Profile - do you see the new picture?)

hmmm...

Note: You CAN use following SharePoint PowerShell cmdlet command to perform the import operation:
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://<YourServerName>/my
The cmdlet was introduced in this fix: http://support.microsoft.com/kb/2394320  (14.0.5128.5000)

You just map the thumbnailPhoto AD attribute with the Picture property in SharePoint, then run the sync, finally run the cmdlet.

create the Mapping in SP2010 or SP2013:
 go to Central Admin->Application Management->Manage Service Applications
 select your User Profile Service Application
 select the People->Manage User Properties tab
 in the left-hand column, look down and select the Picture property.
 edit this - down the bottom is 'Add New Mapping' and via the dropdown on Attribute, select thumbnailPhoto.
 it should then look like this:
   User Profile Synch Connection
   thumbnailPhoto
   Import
go back to the Manage User Properties and you should now see
   Picture    URL   thumbnailPhoto

OK, so now Synchronization->Start Profile Synchronization. Let that run through.
Next you will want to double-check your MySiteHostLocation.
select My Site Settings->Setup My Sites
grab the entry from My Site Host Location - that is what we need for the MySiteLocation parameter.

so, on the SharePoint box, launch a SharePoint PowerShell, (run as administrator).
the command will be as per below, with your path replacing "http://<YourServerName>/my"

Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://<YourServerName>/my

Now, go back to your mysite, select your profile and... voila!!  the new picture has been pulled in from AD.

 Things that can go wrong:

  • Be on current Cumulative Updates. (Post Dec 2011 absolute minimum!)
  • User Profile Synch service has to be running/enabled/OK!
  •  Permissions:
    •  Service Applications->User Profile Service Application, click Permissions. 
          Add your account and check the Full Control checkbox.
    •  Service Applications->User Profile Service Application, click the Administrators
          Add your account there and check the Manage Profiles.
  • Site Collection Administrator for the My Site host
  • DBO access to the DB containing mysite host.
  • run powershell with 'Run as Administrator'

 

Comments
  • Great post! I followed these steps and I can see user's pictures in People Search as well as in their profiles.

    The only point when I got error in PowerShell was that I was logged on with the 'Setup' account. Then I logged on with Farm admin account which had DBO permission on My Sites database and User Profile databases.

    Thanks!

    --Ashish

  • Also, just to be clear, I did this in SharePoint 2013.

  • What if we are using another custom attribute that isn't showing in my data source to be able to map it. Can I do this through PowerShell?

  • Is there anyway to import the pictures from AD without having to have MySites setup?

  • Is there anyway to import the pictures from AD without having to have MySites setup?

  • Hi, I hope you can help me with this error: Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation https://testmy.XXXXX.nl Update-SPProfilePhotoStore : The pipeline has been stopped. At line:6 char:27 + Update-SPProfilePhotoStore < -createthumbnailsforimportedphotos="" 1="" -mysitehostlocation="" https://testmy.xxxxx.nl="" +="" categoryinfo="" :="" invaliddata:="" (microsoft.offic...ofilephotostore:spcmdletuserprofilephotostore)="" [update-spprofilephotostore],="" pipelinestoppedexception="" +="" fullyqualifiederrorid="" :="" microsoft.office.server.userprofiles.powershell.spcmdletuserprofilephotostore="">

  • What Am I doing wrong?????

  • Log on to the App server as the AppFabric Caching Service account and run the script. Should be ok.

  • Great post!

  • @Rene http://richardstk.com/2013/04/12/import-user-photos-from-active-directory-into-sharepoint-2013/

  • I'd also like to know (like Fiona) if there is anyway to import the pictures from AD without having to have MySites setup? Thank you.

  • Same as Betsy and Fiona, can I import pictures from the AD without setting up MySites?

  • I've seen several guides similar to this one, but they all indicate that I should have the "thumbnailPhoto" attribute available to select. When I scroll down to where it should be, all I see is a closed and narrow drop down that cannot be opened/selected from. I've tried simply typing in the attribute name in the text box that's there and adding that mapping, but still no joy. I'm following all of the steps I've seen and am using the SharePoint Active Directory import. I've checked rights, I've ran the PS script, ran the sync, checked to make sure the attribute exists in AD and is being populated and I still can't see the user pics. Can anyone point me to where I may be doing something wrong??

  • Will this work with Office 365. We are trying to sync our AD thumbnail pictures.

  • Hey

    What could be the reason to not displaying my pictures in MySites or search, but when I hover the mouse over the profile-names I am able to see the picture I imported from AD, showing up in the pop-up.?

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment