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。 确认测试用户帐号已经创建, 例如 [email protected]。 另外确认高清照片已经上传。

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中大照片显示对比更加明显,这里就不再上传了。

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

时间: 2024-10-13 10:35:46

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

SharePoint 2013 图文开发系列之代码定义列表

原文:SharePoint 2013 图文开发系列之代码定义列表 在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码来定义列表或者文档库. 尤其在工作流的开发中,我们经常会用到代码定义任务列表,或者历史记录列表,用来存储我们需要存储的相关数据.而在Visual Studio 2013中,定义列表也提供了模板,通过模板创建,我们很容易就可以定义需要的

SharePoint 2013 图文开发系列之WebPart

原文:SharePoint 2013 图文开发系列之WebPart 这是我们介绍SharePoint开发入门的第一篇,在这一篇里,我们会介绍SharePoint开发的几个关键物理路径,一些开发技巧和最基础的WebPart开发. 开发工具 在SharePoint 2013开发中,我们使用的是Visual Studio 2012/2013均可,但是VS2012要额外安装Microsoft Office Develop Tools for Visual Studio 2012,可以使用Microsof

SharePoint 2013 图文开发系列之计时器任务

原文:SharePoint 2013 图文开发系列之计时器任务 SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在SharePoint 2013的开发中,很多时候我都会选择2013的空项目,方便以后添加项,也许是个人习惯问题,是不是好习惯,还是希望大家在开发中自己体会. 1.添加新项目,选择SharePoint 2013空项目,如下图 2.选择场解决方

SharePoint 2013 图文开发系列之自定义字段

原文:SharePoint 2013 图文开发系列之自定义字段 SharePoint使用的优势,就在于开箱即用.快速搭建,SharePoint自身为我们提供了很多字段类型,已经很丰富了.但是,在实际应用中,我们还需要一些功能特殊的字段,下面,我们简单介绍下字段的开发,大家了解以后,可以按照需求扩展自己的字段类型. 1.新建项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,如下图: 3.添加新项,类,这个是用来定义字段的,如下图: 4.添加新项,类,这个是

SharePoint 2013 图文开发系列之定义站点模板

原文:SharePoint 2013 图文开发系列之定义站点模板 SharePoint站点模板是一个非常好的功能,方便我们开发一类网站,然后在此基础上做二次开发,对于SharePoint的使用,有着举足轻重的作用. 因为篇幅比较长,所以加上目录,方便大家查看: 一.为站点模板添加母版页 二.为站点模板添加自定义列表 三.为站点模板添加可视化WebPart 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试站点,部署为场解决方案,如下图: 3.添加新项,选择网站定义

SharePoint 2013 图文开发系列之网站栏

原文:SharePoint 2013 图文开发系列之网站栏 网站栏的本质,就是一个xml的描述文件,所以创建过程,基本就是通过Feature部署一个Xml文件,然后修改Xml文件的网站栏描述. 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,这里选择场,如下图: 3.添加新项,选择网站栏,如下图: 4.修改网站栏的Feature文件,方便以后识别,如下图: 5.查看网站栏的Xml文件,这是一个默认的单行文本类型,我们准备创建一个选项类型: 6

SharePoint 2013 图文开发系列之事件接收器

原文:SharePoint 2013 图文开发系列之事件接收器 在SharePoint的使用中,我们经常需要在完成一个动作之后,触发一个事件:比如,我们上传一个文档,但是没有标题,我们需要在上传完成之后,触发一个事件把文件名同步到标题,这就需要用到事件接收器. 此例,就是在SharePoint 2013文档库中,上传文档以后,将标题更新为文档名称的事件接收器. 1.添加新项目,选择SharePoint 2013空项目,如下图: 2.选择场解决方案,如下图: 3.添加新项,选择事件接收器,如下图:

SharePoint 2013 图文开发系列之可视化WebPart

原文:SharePoint 2013 图文开发系列之可视化WebPart 有了WebPart开发的基础,再进行可视化WebPart开发,就容易多了.创建和开发过程,两者非常相似,下面,我们简单介绍下可视化WebPart的开发. 1.添加新项目,选择SharePoint 2013空项目 ,如下图: 当然,你也可以直接选择可视化web部件,这样会在项目里自动创建一个可视化WebPart(如下图),不过我不喜欢它默认的命名方式,还要重命名或删除重建,所以我就创建空项目,而后自己添加. 2.选择部署为场

SharePoint 2013 图文开发系列之Visual Studio 创建母版页

原文:SharePoint 2013 图文开发系列之Visual Studio 创建母版页 一直以来,对于SharePoint母版页的创建,都是使用SharePoint Designer来创建和修改的,而后接触了SharePoint 2013,发现可以使用Html文件,通过设计管理器导入,然后生成Master页面使用,但是效果不是很好. 其实,SharePoint还可以通过代码方式创建和部署母版页,创建的过程比较简单,篇幅很短,也不需要很详细的解说,相信了解开发的人,很容易就能搞定.之前浏览博客