Lync 中的用户联系人照片未正确显示
2021/4/9
适用于:
Skype for Business Online
本文内容
问题
连接到以前为 Lync Online (Skype for Business Online) 时,可能会遇到以下问题:
问题 1:在 Lync 2010 或 Lync 2013 中,无法查看自己的联系人照片。
问题 2:其他联系人无法看到你的照片。 这包括外部联系人。
问题 3:Lync 2013 中的会议和联机会议中不显示高分辨率联系人照片。
解决方案
问题 1 的解决方法
若要解决问题 1,请从 Office 365 门户上载照片。 根据用户拥有的 Exchange 邮箱版本,存在不同的上载选项。 若要详细了解如何从 Lync 2010 或 Lync 2013 上载照片,请转到以下 Microsoft 网站:
问题 2 的解决方法
如果外部联系人报告他们无法查看你的联系人照片,请确保照片不会使用 thumbnailPhoto 属性在 Active Directory 中发布。 在这种情况下,照片对外部联系人不可用,因为照片存储在本地 Active Directory 域服务 (AD DS) 。
外部联系人无法从本地源检索照片。 只有同一组织内部的用户才能在 Skype for Business Online 中检索照片。
问题 3 的解决方法
高清照片仅在 Lync 2013 和 Microsoft Lync Web App 中显示。 如果用户登录到 Lync 2010,将显示标准定义照片,而不是高分辨率版本。 或者,如果用户登录到 Lync 2013,并且某些联系人的照片不是高分辨率,则应确保联系人具有 Exchange 2013 邮箱并上载了高分辨率照片。
更多信息
这些问题可能由以下原因之一导致:
问题 1 通常在满足下列条件之一时发生:
未上载任何照片。
照片不符合大小或类型要求。
用户的 Exchange 邮箱不可用。
当联系人无法访问照片时,将发生问题 2。 这是因为 Exchange 邮箱不可用,或者照片存储在 Active Directory 中且外部联系人无法访问。
当用户登录到 Lync 2010 或未显示其照片的用户没有 Exchange 2013 邮箱时,将发生问题 3。
如何:通过 PowerShell 将照片上载到 Exchange Online
首先,按照以下 Microsoft 网站的说明,使用远程 PowerShell 连接到 Exchange Online:
连接后,使用 Set-UserPhoto cmdlet 将照片直接上载到用户的 Exchange 邮箱。 有关 Set-UserPhoto cmdlet 及其用法的信息,请转到以下 Microsoft TechNet 网站:
如何在 AD DS 中填充"thumbnailPhoto"属性
如果运行的是 Microsoft Azure Active Directory 同步工具,请运行 Windows PowerShell 脚本以填充本地 Active Directory 架构中的 thumbnailPhotoattribute。 为此,请按照下列步骤操作:
启动记事本,然后将以下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 行,编辑 GC 位置以反映本地 Active Directory 架构。 此示例使用 Contoso.local 域。 因此,本示例中第 2 行如下所示:
$root = [ADSI]'GC://dc=contoso,dc=local'
在“文件”菜单上,单击“保存”。
在" 另存为类型"框中 ,单击".* (* 文件) 。
在"文件名" 框中,键入"UploadADPhoto.ps1",然后单击"保存 "。
启动Windows PowerShell,然后移动到保存脚本的位置。
运行脚本,键入用户的别名,然后按 Enter。 " 文件打开 "对话框会提示您输入 JPG 或 PNG 格式的图像文件。
单击“打开”。 结果显示在屏幕上。
如果图片已成功上载,请执行下列操作之一:
让 Azure Active Directory 同步工具同步。
强制同步。 若要详细了解如何强制同步,请转到以下 Microsoft 网站:
等待 12 到 24 小时,所有更改都生效。
备注
如果照片是使用此方法发布的,则外部联系人Windows Live Hotmail用户和其他联盟组织无法显示照片。 无法显示照片,因为无法从外部位置访问该文件。
仍然需要帮助? 请转到 Microsoft 社区。