Lync 中的用戶聯繫人相片未正確顯示

問題

當您連線到 商務用 Skype Online (之前稱為 Lync Online) 時,您可能會遇到下列問題:

  • 問題 1:您無法在 Lync 2010 或 Lync 2013 中檢視自己的聯繫人相片。
  • 問題 2:其他聯繫人看不到您的相片。 這包括外部聯繫人。
  • 問題 3:高解析度聯繫人相片不會顯示在 Lync 2013 的會議和在線會議中。

解決方案

問題 1 的解決方式

若要解決問題 1,請從 Microsoft 365 入口網站上傳相片。 根據用戶擁有的 Exchange 信箱版本,有不同的上傳選項。 如需如何從 Lync 2010 或 Lync 2013 上傳相片的詳細資訊,請移至下列 Microsoft 網站:

在 Lync 中變更圖片

問題 2 的解決方式

如果外部聯繫人回報他們無法檢視您的聯繫人相片,請確定這些相片不是使用 thumbnailPhoto 屬性在 Active Directory 中發佈。 在此情況下,相片無法供外部聯繫人使用,因為相片會儲存在本機 Active Directory 網域服務 (AD DS) 中。

外部聯繫人無法從本機來源擷取相片。 只有相同組織內的用戶能夠在 商務用 Skype Online 中擷取相片。

問題 3 的解決方式

高定義相片只會顯示在 Lync 2013 和 Microsoft Lync Web 應用程式中。 如果使用者登入 Lync 2010,則會顯示標準定義相片,而不是高解析度版本。 或者,如果使用者登入 Lync 2013,而且某些聯繫人的相片解析度不高,您應該確定聯繫人有 Exchange 2013 信箱,並已上傳高解析度相片。

其他相關資訊

這些問題可能會因為下列其中一個原因而發生:

  • 當下列其中一個條件成立時,通常會發生問題 1:
    • 沒有上傳相片。
    • 相片不符合大小或類型需求。
    • 使用者的 Exchange 信箱無法使用。
  • 當聯繫人無法存取相片時,就會發生問題 2。 這可能是因為 Exchange 信箱無法使用,或是因為相片儲存在 Active Directory 中,外部聯繫人無法存取。
  • 當使用者登入 Lync 2010 或未顯示相片的用戶沒有 Exchange 2013 信箱時,就會發生問題 3。

如何透過PowerShell將相片上傳至 Exchange Online

首先,使用下列 Microsoft 網站上的指示,使用遠端 PowerShell 連線到 Exchange Online:

使用遠端 PowerShell 連線到 Exchange Online

線上之後,請使用 Set-UserPhoto Cmdlet 將相片直接上傳至使用者的 Exchange 信箱。 如需 Set-UserPhoto Cmdlet 及其使用方式的詳細資訊,請移至下列 Microsoft TechNet 網站:

Set-UserPhoto

如何在 AD DS 中填入 「thumbnailPhoto」 屬性

如果您執行 Microsoft Azure Active Directory 同步作業工具,請執行 Windows PowerShell 腳本來填入 內部部署的 Active Directory 架構中的 thumbnailPhoto 屬性。 如果要執行這項操作,請依照下列步驟執行:

  1. 啟動記事本,然後將下列 Windows PowerShell 腳本貼到記事本中:

    $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[0].path
    $userdn = $userdn.trim("GC")
    $userdn = "LDAP" + $userdn
    
    function Select-FileDialog
    {
    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")
    {
    Return $objForm.FileName
    }
    Else 
    {
    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 
    $user.Properties["thumbnailPhoto"].Clear()
    
    # 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 
    $user.CommitChanges()
    
    if ($result -eq "0")
    {
    Write-Host "Photo successfully uploaded."
    } 
    else
    {
    Write-Error "Photo was not uploaded."
    }
    
  2. 在腳本的第 2 行上,編輯 GC 位置以反映本機 Active Directory 架構。 在此範例中,我們會使用 Contoso.local 網域。 因此,在此範例中,第 2 行如下所示:

    $root = [ADSI]'GC://dc=contoso,dc=local'
    
  3. 在 [ 檔案] 功能表上,按兩下 [ 儲存]

  4. 在 [ 另存新檔類型] 方塊中,按兩下 [所有檔案 (*.*) ] 。

  5. 在 [ 檔名] 方塊中,輸入 UploadADPhoto.ps1,然後按兩下 [ 儲存]

  6. 開始 Windows PowerShell,然後移至您儲存腳本的位置。

  7. 執行腳本,輸入使用者的別名,然後按 Enter。 [檔案開啟] 對話框會提示您輸入 JPG 或 PNG 格式的影像檔。

  8. 按一下 [開啟]。 結果會顯示在螢幕上。

  9. 如果圖片已成功上傳,請採取下列其中一個動作:

    • 讓 Azure Active Directory 同步處理工具進行同步處理。

    • 強制同步處理。 如需如何強制同步處理的詳細資訊,請移至下列 Microsoft 網站:

      同步處理您的目錄

  10. 等候 12 到 24 小時,所有變更才會生效。

注意事項

如果使用此方法發佈相片,則 Windows Live Hotmail 使用者和其他同盟組織等外部聯繫人無法顯示相片。 無法顯示相片,因為無法從外部位置存取檔案。

是否仍需要協助? 前往 Microsoft Community