- Issue 1: You can't view your own contact photo in Lync 2010 or Lync 2013.
- Issue 2: Other contacts can't see your photo. This includes external contacts.
- Issue 3: High-resolution contact photos don’t display in conferences and online meetings in Lync 2013.
Resolution for Issue 1To resolve issue 1, upload a photo from the Office 365 portal. Depending on which version of Exchange mailbox the user has, there are different upload options. For more information about how to upload a photo from Lync 2010 or Lync 2013, go to the following Microsoft website:
Resolution for Issue 2If external contacts report that they can't view your contact photos, make sure that the photos aren't published in Active Directory by using the thumbnailPhoto attribute. In this case, the photos aren't available to external contacts because the photos are stored in the local Active Directory Domain Services (AD DS).
An external contact won’t be able to retrieve photos from a local source. Only users within the same organization are expected to be able to retrieve photos in Skype for Business Online.
Resolution for Issue 3High-definition photos are displayed only in Lync 2013 and the Microsoft Lync Web App. If users are logged in to Lync 2010, the standard-definition photos are displayed instead of high-resolution versions. Or, if users are logged in to Lync 2013, and if photos for certain contacts aren't high resolution, you should make sure that the contacts have an Exchange 2013 mailbox and have a high-resolution photo uploaded.
- Issue 1 usually occurs when one of the following conditions is true:
- No photo was uploaded.
- The photo doesn’t meet the size or type requirements.
- The user’s Exchange mailbox is unavailable.
- Issue 2 occurs when the photo is inaccessible to the contact. This can occur because the Exchange mailbox is unavailable or because the photo is stored in Active Directory and is inaccessible to external contacts.
- Issue 3 occurs when users are logged into Lync 2010 or when the user whose photo isn’t displaying doesn’t have an Exchange 2013 mailbox.
How to upload photos to Exchange Online through PowerShellFirst, connect to Exchange Online by using remote PowerShell by using the instructions at the following Microsoft website: Set-UserPhoto cmdlet to upload a photo directly to the user’s Exchange mailbox. For more information about the Set-UserPhoto cmdlet and its usages, go to the following Microsoft TechNet website:
How to populate the "thumbnailPhoto" attribute in AD DSIf you are running the Microsoft Azure Active Directory Sync Tool , run a Windows PowerShell script to populate the thumbnailPhoto attribute in the on-premises Active Directory schema. To do this, follow these steps:
- Start Notepad, and then paste the following Windows PowerShell script into Notepad:
$SAMName=Read-Host "Enter a username"
$root = [ADSI]'GC://dc=contoso,dc=local'
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = "(&(objectClass=user)(sAMAccountName=$SAMName))"
$user = $searcher.findall()
$userdn = $user.path
$userdn = $userdn.trim("GC")
$userdn = "LDAP" + $userdn
param([string]$Title,[string]$Directory,[string]$Filter="All Files (*.*)|*.*")
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$objForm = New-Object System.Windows.Forms.OpenFileDialog
$objForm.InitialDirectory = $Directory
$objForm.Filter = $Filter
$objForm.Title = $Title
$objForm.ShowHelp = $true
$Show = $objForm.ShowDialog()
If ($Show -eq "OK")
Write-Error "Operation canceled by user."
$photo = Select-FileDialog -Title "Select a photo" -Directory "%userprofile%" -Filter "JPG Images (*.jpg)|*.jpg|PNG Images (*.png)|*.png"
$user = [ADSI]($userdn)
[byte]$file = Get-Content $photo -Encoding Byte
# clear previous image if exist
# write the image to the user's thumbnailPhoto attribute by converting the byte to Base64String
$result = $user.Properties["thumbnailPhoto"].Add($file)
# commit the changes to AD
if ($result -eq "0")
Write-Host "Photo successfully uploaded."
Write-Error "Photo was not uploaded."
- On line 2 of the script, edit the GC location to reflect the local Active Directory schema. In this example, we use the Contoso.local domain. Therefore, in this example, line 2 is as follows:
$root = [ADSI]'GC://dc=contoso,dc=local'
- On the File menu, click Save.
- In the Save As Type box, click All Files (*.*).
- In the File name box, type UploadADPhoto.ps1, and then click Save.
- Start Windows PowerShell, and then move to the location where you saved the script.
- Run the script, type the alias of the user, and then press Enter. A File-Open dialog box prompts you for the image file in either a JPG or PNG format.
- Click Open. The results are displayed on the screen.
- If the picture was successfully uploaded, take one of the following actions:
- Let the Azure Active Directory Sync Tool synchronize.
- Force synchronization. For more information about how to force synchronization, go to the following Microsoft website:
- Wait 12 to 24 hours for all changes to take effect.