这一节,我们来讨论一下如何实现忙闲信息的查询。
首先,我们需要在两个系统之间建立关系,也就是所谓的 Organization Relationship。其次,能够查询信息的详细程度,和他们之间AD森林信任的程度也有关系。如果两边AD存在或者允许建立 双向信任,那么我们可以做 PerUserFB 查询较为详细的忙闲信息。如果只允许单向信任 (比如仅资源域信任账户域)或者没有域信任,那么只能做OrgWideFB 查询简单的忙闲信息。
我们需要运行命令 Add-AvailabilityAddressSpace ,这条命令会在双方系统中添加 Availability Address Space信息,相当于“路由表”。当我们在Outlook客户端去查询一个别的Exchange组织的用户的忙闲信息时,Exchange 会读取 要查询对象的TargetAddress这个AD属性,然后匹配其中的域名信息,从而得到该对象的目标域名。然后根据前面事先设定好的Availability Address Space 配置,发起相应的查询。
那么,我们的Exchange服务器是如何知道对方系统的Exchange服务器的接口地址的呢?这里就会用到一个Exchange的基础服务 Autodiscover service. 需要了解什么是 Autodiscover的朋友,可以去阅读以下文档。
https://technet.microsoft.com/en-us/library/bb124251%28v=exchg.150%29.aspx
使用Autodiscover查询对方服务器,一般有三个方法,我们一一来分析下优劣。
1. 创建并查询DNS SVR记录。但这一方法不适合 Exchange 2007。详细原因请查询下面的KB. 这里另外插一句,到2015年6月为止,我们如果做Office365的混合云模式,也不支持使用DNS SRV的方法。
http://technet.microsoft.com/en-us/library/bb125182%28EXCHG.80%29.aspx
2. 创建并查询 TargetAddress里所指示的autodiscover的DNS记录。比如 autodiscover.source.contoso.com, autodiscover.target.contoso.com 。但是这需要更新 SSL 证书,意味着额外的开销和配置工作。
3. 使用Export-AutodiscoverConfig 在AD中为对方组织创建 SCP 记录。然后手工在 Keywords属性中加上 routing domain的信息 “Domain=xxx.contoso.com”。如此Exchange 就会直接查询 AD的SCP记录来找到对方的接口,无需依赖 DNS,也无需更动现有的SSL证书。
下面是相关步骤的介绍和解析。
1. 在目标系统中输入:
Set-AvailabilityConfig -OrgWideAccount FreeBusySvc-winos
这条命令的目的是为自身系统 指定一个service account (比如 FreeBusySvc-winos)
2. 在目标系统中输入:
Add-AvailabilityAddressSpace -ForestName source.contoso.com -AccessMethod OrgWideFB -Credential (Get-Credential)
注意:
a. 这里 source.contoso.com 换成您实际上的源森林的FQDN
b. 另外,由于范例中我们使用的是单向AD信任,因此需要准备一个service account 来让对方访问自己的资源。在命令中Get-Credential 会跳出弹框让我们输入信息,这里需要输入的是源系统的账号和密码(也就是 target\FreeBusySvc-contoso)
3. 在源系统中输入:
Set-AvailabilityConfig -OrgWideAccount FreeBusySvc-contoso
这条命令的目的是为自身系统 指定一个service account (比如 FreeBusySvc-contoso)
4. 在源系统中输入
Add-AvailabilityAddressSpace -ForestName target.contoso.com -AccessMethod OrgWideFB -Credential (Get-Credential)
注意:
a. 这里 target.contoso.com 换成您实际上的目标森林的FQDN
b. 另外,由于范例中我们使用的是单向AD信任,因此需要准备一个service account 来让对方访问自己的资源。在命令中Get-Credential 会跳出弹框让我们输入信息,这里需要输入的是源系统的账号和密码(也就是 source\FreeBusySvc-winos)
最后实现的效果如下。图中红色标记的 William 和 Alex 都是另外一个Exchange 系统的邮箱。
最后补充一句,由于Exchange 2007和2010/2013 的缺省忙闲信息查询的 schedule 不一致,可能会导致查询失败。解决方法是修改 Exchange 2007服务器上IIS的相关配置,使得两边的 schedule 一致。具体步骤如下:
- 1. Log into the Exchange 2007 Client Access Server (CAS)
- 2. Open Internet Information Services (IIS) Manager in Adminstrative Tools
- 3. Navigate to Sites > Default Web Site > EWS
- 4. Double-click Application Settings under the ASP.NET heading
- 5. Click Add in the Actions pane and create the following new application setting:
- Name: maximumQueryIntervalDays
- Value: 62
- 6. Click OK to set the new value and close IIS Manager
- 7. Repeat for each Exchange 2007 CAS
《未完待续》