Exchange Server 2013 中的OAB介绍了 Exchange Server 2013 中新的脱机通讯簿 (OAB) 生成和分发体系结构。如果您尚未看过这篇文章,请花几分钟时间阅读一下或者再读一次快速温习一下。
由于体系结构发生更改,Exchange 2013 中的 OAB 管理有所不同。此外,新的 Exchange 管理中心目前没有用于管理 OAB 的选项。这意味着,此时您将需要使用 Exchange 命令行管理程序完成 OAB 相关任务。
本文将介绍 OAB 管理中的常见任务,并提供两个可帮助更好地了解这些任务的现实生活方案。
注意:如果您位于多林 Active Directory 域环境中,请确保 Exchange 命令行管理程序会话启用了ViewEntireForest,本文中的部分命令将不会返回任何输出。
用于启用 ViewEntireForest 的命令:
1
Set-ADServerSettings -ViewEntireForest $true
创建新的 OAB
在 Exchange 2013 中创建新的 OAB 不再需要使用 -Server 参数。若要创建新的 OAB,您应仅指定所需的地址列表。
以下示例创建一个名为“Global Address List FAB”的 OAB 地址列表。
1
New-OfflineAddressBook -Name OAB-FAB -AddressLists "Global Address List FAB"
标识 OAB 生成服务器
Exchange Server 2013 中的仲裁邮箱分配有可用于定义仲裁邮箱的用途/功能的特定的“持久化功能”。
带有持久化功能“OrganizationCapabilityOABGen”的仲裁邮箱负责生成 OAB。我们将在整篇文章中将此邮箱称为“组织邮箱”。
承载组织邮箱的 Exchange Server 2013 邮箱服务器将生成在环境中定义的所有 OAB。
对于非 DAG 环境,请使用以下命令标识 OAB 生成服务器:
1
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"} | ftname,servername
对于 DAG 环境,标识 OAB 生成服务器的过程分为两步。
第 1 步:使用 OAB Gen 功能标识承载组织邮箱的邮箱数据库。
使用以下命令列出带有持久化功能 OABGen 的仲裁邮箱以及承载此邮箱的数据库:
1
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"} | ftname,database
第 2 步:标识装载有承载组织邮箱的数据库的邮箱服务器
使用以下命令标识邮箱数据库的活动副本:
1
Get-MailboxDatabaseCopyStatus db1
其中的数据库状态为“已装载”的服务器就是当前的 OAB 生成服务器。
更改 OAB 生成服务器
更改 OAB 生成服务器的方法有两种。
移动邮箱
将组织邮箱移至打算指定为 OAB 生成服务器的服务器上的邮箱数据库。
示例:
DB1 是服务器 Exch1 上的一个副本数据库,并承载组织邮箱。DB2 是 Exch2 上的邮箱数据库。
可使用以下命令将组织邮箱移至 DB2 并使 Exch2 成为 OAB 生成服务器。
1
Get-Mailbox -Arbitration -database db1| where {$_.PersistedCapabilities –like “*oab*”} | New-MoveRequest -TargetDatabase db2
此方法更适合具有一个承载组织邮箱的邮箱数据库副本的环境。
激活另一台服务器上的邮箱数据库
此方法适合具有多个承载组织邮箱的邮箱数据库副本的环境。
示例:
DB1 承载组织邮箱,并且在服务器 Exch1 和 Exch2 上都有副本。DB1 当前在 Exch1 上处于活动状态。
可使用以下命令激活 Exch2 上的 DB1 并使 Exch2 成为 OAB 生成服务器:
1
Move-ActiveMailboxDatabase DB1 -ActivateOnServer Exch2
注意:在更改 OAB 生成服务器之前,请阅读本文后面“组织邮箱替换”中提到的准则。
创建新的组织邮箱
为了提供容错功能或者为地理分散的 Exchange 部署的用户提供服务,管理员可创建其他组织邮箱。
创建新的组织邮箱的过程分为以下两步:
第 1 步:创建新的仲裁邮箱
1
New-Mailbox -Arbitration -Name "OAB Seattle" -Database DB2Seattle -UserPrincipalNameoabs@contoso.com –DisplayName “OAB Mailbox for Seattle”
第 2 步:启用 OABGen 功能
1
Set-Mailbox -Arbitration oabs -OABGen $true
注意:在创建其他组织邮箱之前,请阅读本文后面“组织邮箱替换”中提到的准则。
更改 OAB 生成计划
Exchange Server 2010 之前的 OAB 生成都是在基于 OAB 属性上设置的“计划”。查看 Exchange 2013 OAB 的属性时,您可能会看到一个已定义的“计划”。但 Exchange Server 2013 OAB 生成不会根据 OAB 属性上定义的“计划”进行:
相反,Exchange Server 2013 OAB 生成会根据在邮箱服务器上配置的 OABGeneratorWorkCycle 和 OABGeneratorWorkCycleCheckpoint 属性进行。
示例:
上面屏幕截图中的值意味着每日生成一次 OAB。
哪一台邮箱服务器处理 OAB 下载请求?
Exchange Server 2013 CAS 角色会将 OAB 下载请求代理到相应的邮箱角色服务器。CAS 角色会将其处理的每个请求的记录保留在日志文件中,这些日志文件位于文件夹 %ExchangeInstallPath%LoggingHttpProxyOAB 中。
这些日志文件是用于标识 CAS 选择用于服务请求的邮箱服务器的极佳工具。
日志文件中的部分重要字段的信息:
字段
说明
UrlStem
用于标识正下载的 OAB 以及下载是完全下载还是增量下载
AuthenticatedUser
请求 OAB 的用户的名称
AnchorMailbox
标识为最接近服务 OAB 请求的组织邮箱的 DN
ServerHostName
处理请求的 CAS 服务器名称
HttpStatus
代理操作的状态代码
ProxyAction
CAS 服务器针对请求执行的操作,它通常是 Exchange 2013 OAB 的“代理”
TargetServer
将请求代理到的邮箱角色服务器的名称
为了提高可读性,可将日志文件导入到 Excel 中。
示例:
强制 OAB 生成
可通过两种方法强制立即开始 Exchange Server 2013 OAB 生成。
方法 1:Update-OfflineAddresBook
以下命令将对所有组织邮箱中名为“Default Offline Address Book”的 OAB 强制 OAB 生成。
1
Update-OfflineAddressBook "default offline address book"
注意:此命令将对每个承载活动组织邮箱的邮箱服务器发起 RPC 请求。
方法 2:重新启动邮箱助理服务。
邮箱角色中的 Microsoft Exchange 邮箱助理服务负责生成 OAB。重新启动此服务将在特定邮箱服务器上生成在环境中定义的所有 OAB,前提是该邮箱服务器承载了活动组织邮箱。
组织邮箱替换
Exchange Server 2013 CAS 角色将 OAB 下载请求代理到“最近的”承载活动组织邮箱的邮箱服务器。该服务器在发现同一 AD 站点中存在多个活动的组织邮箱时,可以通过循环方式代理请求。这可能导致频繁的完全 OAB 下载。
因此,当前的指导意见是规划组织邮箱替换,以便您在 AD 站点中将有一个活动的组织邮箱。这适用于创建新的组织邮箱以及创建承载组织邮箱的邮箱数据库的副本。
方案
下列方案讨论了一种现实生活情况以进一步说明新的 OAB 管理方法。
方案 1:创建新的组织邮箱
Contoso 在 Dallas 和 Seattle 站点上均部署了 Exchange Server 2013 邮箱和 CAS 角色。Contoso 的 Exchange 管理员 John 分析 CAS 服务器上的 http 代理日志文件,发现 Seattle 用户的 OAB 下载请求全转到了 Dallas 服务器。在进一步的调查中,John 发现他在 Dallas 站点中只有一个组织邮箱,因此所有用户的 OAB 下载请求将全转到 Dallas 服务器。
他决定使用下列命令在 Seattle 站点创建一个新的组织邮箱:
第 1 步:创建新的仲裁邮箱
1
New-Mailbox -Arbitration -Name "OAB Seattle" -Database DB2Seattle -UserPrincipalNameoabs@contoso.com –DisplayName “OAB Mailbox for Seattle”
第 2 步:启用具有 OABGen 功能的仲裁邮箱
1
Set-Mailbox -Arbitration oabs -OABGen $true
方案 2:自定义 OAB 生成计划
Ben 是 Tail Spin Toys 的 Exchange 2013 部署的管理员。默认的 OAB 生成计划不适合他们,他们希望每天大约每隔四个小时生成一次 OAB。
Ben 将使用以下命令更改将承载组织邮箱的邮箱服务器的属性。
1
Set-MailboxServer Exch1 -OABGeneratorWorkCycle 01.00:00:00 -OABGeneratorWorkCycleCheckpoint 04:00:00
一些天之后,Ben 分析应用程序日志中的事件 ID 17002,确保每隔四个小时生成一次 OAB。