SharePoint 2013技巧分享系列 - 同步Exchange显示高清用户照片

简介:

在“SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片”文中介绍了如何同步Active Directory显示用户照片,但是同步完成后,用户照片尺寸和清晰度都不是非常理想。本文将介绍如何同步Exchange Server显示高清用户照片。

原理

与SharePoint Server 2010相似, 在SharePoint Server 2013中存在一个用户照片的目录。当SharePoint启用Exchange照片同步时, SharePoint将使用Exchange Server 2013 作为照片存取目录, 而SharePoint本地照片目录将被屏蔽,也就是说,设置SharePoint-Exchange照片同步后,将不允许用户通过SharePoint修改其头像照片。在Central Administration - User Profile - Manage User Profiles中可以看到Picture属性显示“You can't change this person's photo because it is synchronized with Microsoft Exchange.". 

需要注意的是,在进行同步设置时,要对Exchange Server进行简单的配置,并且需要重新启动IIS。 而在SharePoint 2013中需要配置相关权限和服务,使SharePoint 2013能够连接Exchange Server并获取用户数据。

环境实例

为了避免误解,这里我们实现定义一些环境配置,方便在详细步骤中调用:

1. SharePoint Server 2013 (http://people), 需要添加Alternate Access映射https://people. 该连接指向My Site。 

 

2. Exchange 2013 Client Access server (FQDN) http://e15fe.test.com。

3. Exchange 2013 Mailbox server (FQDN) http://e15be.test.com。 确认测试用户帐号已经创建, 例如 kevin@test.com。 另外确认高清照片已经上传。

4. 添加DNS record, 使autodiscover.test.com指向http://e15fe.test.com。

 

步骤

确认以上所有配置后,我们将进行以下几个步骤的配置 。

第一步,添加Exchange 2013 Autodiscover服务,在Exchange Management Shell command中运行以下命令,

Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://autodiscover.test.com/autodiscover/autodiscover.xml

 

第二步, SharePoint 2013 使用外部连接EWS和ECP读取Exchange 2013 用户照片数据。 现在我们需要使用Exchange Management Shell command运行,

Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory –InternalUrl https://e15fe.test.com/ews/exchange.asmx –ExternalUrl https://e15fe.test.com/ews/exchange.asmx

Get-EcpVirtualDirectory | Set-EcpVirtualDirectory –InternalUrl https://e15fe.test.com/ecp –ExternalUrl https://e15fe.test.com/ecp

 

第三步,完成以上Exchange server配置后,需要在SharePoint 2013安装Exchange Web Services Managed API v2.0,并且将Microsoft.Exchange.WebServices.dll载入到GAC中。 这一步骤我们需要使用.NET 4中的命令GacUtil,所以,在进行这一步骤前,请确认.Net 4.0 SDK已经安装在服务器上。完成安装后,在PowerShell中运行以下命令载入Microsoft.Exchange.WebServices.dll。 载入完成后,需要重新启动IIS。

Set-location "C:\Program Files\Microsoft\Exchange\Web Services\2.0"

[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

$publish = New-Object System.EnterpriseServices.Internal.Publish

$publish.GacInstall("c:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll")

iisreset

 

第四步,在SharePoint 2013中配置S2SOAuth,使用SharePoint 2013 Management Shell command运行以下命令:

New-SPTrustedSecurityTokenIssuer -name "Exchange" -MetadataEndPoint "https://email.test.com/autodiscover/metadata/json/1"

$sts=Get-SPSecurityTokenServiceConfig

$sts.HybridStsSelectionEnabled = $true

$sts.AllowMetadataOverHttp = $false

$sts.AllowOAuthOverHttp = $false

$sts.Update()

$exchange=Get-SPTrustedSecurityTokenIssuer "Exchange"

$app=Get-SPAppPrincipal -Site http://people -NameIdentifier $exchange.NameId

$site=Get-SPSite http://people

Set-SPAppPrincipalPermission -AppPrincipal $app -Site $site.RootWeb -Scope sitesubscription -Right fullcontrol -EnableAppOnlyPolicy

 

第五步, 在Exchange server中配置S2SOAuth,在Exchange Management Shell中运行以下命令

cd \Program Files\Microsoft\Exchange Server\V15\Scripts>

.\Configure-EnterprisePartnerApplication.ps1 -AuthMetadataUrl https://people/_layouts/15/metadata/json/1 -ApplicationType sharepoint

完成以上命令后,需要重启IIS,

iisreset e15fe

iisreset e15be

 

第六步,配置SharePoint 2013 和Exchange server照片同步

$wa = Get-SPWebApplication http://people

$wa.Properties["ExchangeAutodiscoverDomain"] = "email.test.com"

$wa.UserPhotoImportEnabled = $true

$wa.UserPhotoErrorExpiration = 1.0

$wa.UserPhotoExpiration = 6.0

$wa.Update()

 

完成以上步骤后,使用测试帐户登陆进入http://people,刷新后即可从Exchange服务器获取高清用户照片。

需要注意的是,如果仍旧显示Active Directory小照片,可以在Central Administration - User Profile Service - Manage User Properties中,编辑Picture属性,删除其中Active Directory映射的Property Mapping for Synchronization,然后”Start Full Profile Synchronization“即可。

 

对比显示结果:

同步前

同步后

在http://people中大照片显示对比更加明显,这里就不再上传了。

如果你有更好的建议和方法,欢迎留言讨论。

本文转自 冷秋寒  51CTO博客,原文链接:http://blog.51cto.com/kevinfan/1557167 ,如需转载请自行联系原作者

相关文章
|
自然语言处理
函数式编程初探
函数式编程初探  (原文地址:http://blog.jobbole.com/17228/) 04月 11, 2012 at 9:50 am by 齐哲 Tags: Erlang, 函数式编程, 编程语言   诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。   不仅最古老的函数式语言Li
1322 0
|
6天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
16天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
10天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
631 220
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
863 61
|
8天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1371 157
|
5天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
263 139
|
8天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
554 109