Tuesday 30 September 2014

Importing Thumbnail Photos from AD(Active Directory) into SharePoint 2010

Good Article by Harmeet

Problem
Lately I have seen several people having difficulties in importing thumbnail Photos from Active Directory. In this post I would be explaining the step by step process of importing thumbnail Photos
PreReq
I am assuming that you have a working User Profile Service application and MySites configured. You should be successfully able to import users
Setup
I have OU called “PictureOU” inside my domain “Contoso.com”
I have a single user called “Harmeet”






At present there is no picture associated to this user inside Active Directory.




Note- You will not see all the user attributes if you have not turned on the “Advanced Features”. You can also view the same information from ADSI.
How to import Pictures
Now our Goal is to import Harmeet profile along with his picture, we will also upload his picture in AD.
1) First we need to make sure we are able to import users. So I will create connection to OU – PictureOU and import users






Note- I am only importing users from OU PictureOU
2) Let’s check Harmeet’s profile in SharePoint and make sure there is no picture associated to it.





Picture for this user is set to be blank
3) Upload Pictures to Active Directory.
Lots of people also have trouble in finding out ways to upload pictures in Active Directory. Following are the two best methods that I am aware off
A. Run these commands in Windows Powershell. We need to have Windows Administrative tools loaded for this to work
Import-Module ActiveDirectory
$photo=[byte[]](Get-Content C:\harmeet.jpg -Encoding byte)
Set-ADUser "harmeet" -Replace @{thumbnailPhoto=$photo}
B. We can use AD Photo Edit tool available at http://www.cjwdev.co.uk/Software/ADPhotoEdit/Info.html . Please note that this is not a Microsoft supported tool
Note- By default users do have permission to change their own picture, if you are doing it for a different user then make sure you have required Permissions on Active Directory
4) Let’s check User properties in Active Directory and make sure if has Picture value set





5) Map the Picture property to Thumnail Photo
A) Browse to User Profile Service Application from Central Administratoion and then click on Manage User Properties
Central Administration > UPA > Manage User Properties
B) Click on Picture and then Edit





C) We need to Map this to Attribute “thumnailPhoto” and Select Import from the Direction. Make sure you click on on Add





D) After clicking on Add make sure it shows up under the “Property Mapping for Synchronization”section







E) Click on OK
6) Start incremental Import
7) Let’s check the User properties and see if the image has been populated






So Picture still showing blank
8) Let’s check MIIS client and see if it made an attempt to import the picture. For this we will need to DS_DELTASYNC







So it does appear that FIM picked up the image successfully from Active Directory
9) Let’s check the Sync DB by running the following query
Select sAMAccountName,SPS_MV_OctetString_PictureURL from MMS_Metaverse with(nolock) Where SAMAccountName like '%UserName%'




So it appears Sync DB has successfully got updated with the Image.

10) Now let’s check the Profile DB by running the following query
Select NTname,PictureURL from UserProfile_full with(nolock) where NTName like ‘%harmeet%’





So it appears that Picture has not made it to the Profile DB
11) Run the following in SharePoint Management Shell
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://mysite
http://support.microsoft.com/kb/2394320
12) Now if you go back to the user profile you will see that the image has been updated





Troubleshooting:
How to find if an image for a user has been imported in Sync DB
Select sAMAccountName,SPS_MV_OctetString_PictureURL from MMS_Metaverse with(nolock) Where SAMAccountName like '%UserName%'
How to find if an image for a user has been imported in Profile DB
Select NTname,PictureURL from UserProfile_full with(nolock) where NTName like ‘%UserName%’
We first import images from AD into Sync DB and then populate it into the Profile DB. By default images do not auto populate in Profile DB,we need to run the following CMDlet
Update-SPProfilePhotoStore -CreateThumbnailsForImportedPhotos 1 -MySiteHostLocation http://mysite
Image type issues
Best way to troubleshoot this issue is by creating a simple JPG file from MSPaint and then upload it to the Active Directory, if this comes through then you will need to check out the file types or the size issues.


Reference

http://blogs.technet.com/b/harmeetw/archive/2011/09/10/importing-thumbnail-photos-from-ad-active-directory-into-sharepoint-2010.aspx

 

Operation is not valid due to the current state of the object



Whenever you see this error
 
add "aspnet:MaxHttpCollectionKeys" in web.config file or app.config file in your application as shown below
 
Solution:To solve this error, increase MaxHttpCollection value. Try adding the following setting in your web.config's <appsettings> block.

<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="3000" />

</appSettings>


you can change the value accordingly as per your need.


Thanks,
Praveen

Reference

http://dotnetknowledgebox.blogspot.in/2012/10/operation-is-not-valid-due-to-current.html