Exchange Server 中的脱机通讯簿

脱机通讯簿 (OAB) 是地址列表集合的本地副本。 OAB 用于在缓存 Exchange 模式下配置的 Outlook 客户端的通讯簿查询。 OAB 是与 Exchange 服务器断开连接的 Outlook 客户端的唯一选项,但连接的 Outlook 客户端也会首先对其进行查询,以帮助减少 Exchange 服务器上的工作负荷。 可以配置 OAB 中包含的地址列表、访问特定 OAB、生成 OAB 的频率以及从何处分发 OAB。

默认情况下,Exchange 的新安装会在服务器上创建名为“默认脱机通讯簿”的 OAB。 此 OAB 也是默认的 OAB,这意味着它是未分配 OAB 的邮箱和邮箱数据库使用的 OAB。

Exchange 2013 及更高版本中的 OAB 比 Exchange 2010 中的 OAB 进行了改进。 Exchange 2013 中引入了这些更改:

  • 仅支持基于 Web 的分发, (公用文件夹分发不再可用) 。 基于 Web 的分发允许:

    • 支持客户端计算机进行更多并发下载。

    • 减少了带宽使用量。

    • 对 OAB 分发点的更多控制。

  • 仅支持 OAB 版本 4。 此版本的 OAB 是 Unicode,允许客户端接收差异更新,而不是始终使用完整下载。 Exchange 支持的所有 Outlook 版本都完全支持 OAB 版本 4。

  • 邮箱助理 (不是 Microsoft Exchange 系统助理服务) 负责生成 OAB 的过程。 这使 OAB 生成可以根据服务器的工作负荷运行或暂停, (工作负荷管理) 。

  • OAB 生成发生在指定的仲裁邮箱中, (不在指定的 OAB 生成服务器) 。 这些邮箱可以使用数据库可用性组 (DAG) 来帮助防止 OAB 生成和下载的单一故障点。

有关 OAB 过程,请参阅Exchange Server中脱机通讯簿的过程

若要详细了解地址列表,请参阅 Exchange Server 中的地址列表

OAB 生成

OAB 生成由名为 OABGeneratorAssistant 的邮箱助理控制,该助理在 Microsoft Exchange 邮箱助理服务下运行。 OAB 生成发生在具有 OrganizationCapabilityOABGenPersistedCapability 属性值的指定仲裁邮箱中。 具有此功能的仲裁邮箱亦称为“组织邮箱”。

默认情况下,每 8 小时生成一次 OAB。 若要更改 OAB 生成计划,请参阅更改 Exchange Server 中的脱机通讯簿生成计划。 若要手动更新 OAB,请参阅 使用 Exchange 命令行管理程序更新脱机通讯簿

名为 的 SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} 仲裁邮箱是组织中的第一个组织邮箱。 默认情况下,此组织邮箱负责生成所有 OAB (名为“默认脱机通讯簿”的第一个 OAB,以及) 创建的任何新 OAB。

可以创建其他组织邮箱来生成 OAB。 Exchange Server包含 Exchange 2013 累积更新 7 (CU7) 中引入的对 OAB 生成的改进:

  • 可以将多个 OAB 配置为由同一组织邮箱生成,但不能将 OAB 配置为由多个组织邮箱生成。 如果为 OAB 配置了多个组织邮箱,则 OAB 的每个副本都有一个不同的唯一标识符。 因此,每当客户端代理到其他组织邮箱位置时,都需要进行完整的 OAB 下载。

  • 可以将 OAB 配置为允许只读副本 (也称为 卷影副本) 分发到组织中的所有组织邮箱, (也称为 影子分发) 。 OAB 的所有副本具有相同的唯一标识符,因此当客户端代理到其他组织邮箱位置时,不需要完整 OAB 下载。

    通常,只有多站点 Exchange 组织中才需要卷影副本。 在每个站点中配置组织邮箱,并为 OAB 配置影子分发,以帮助防止客户端跨站点 OAB 下载请求 (可能通过慢速 WAN 链接) 。 若要创建其他组织邮箱,请参阅 使用 Exchange 命令行管理程序创建组织邮箱

    下一部分将详细介绍阴影分布。

若要查找所有组织邮箱和为 OAB 定义的组织邮箱,请参阅 使用 Exchange 命令行管理程序查找组织邮箱

OAB 文件生成并存储在指定的组织邮箱中,因此 OAB 下载请求的目标是保存组织邮箱的活动副本的邮箱服务器。 OAB 文件从组织邮箱复制到 , %ExchangeInstallPath%ClientAccess\OAB\<OAB GUID> 供客户端检索。 客户端从不直接连接到此后端位置。 针对 OAB 的客户端请求由邮箱服务器上的客户端访问 (前端) 服务代理到此后端位置。

OAB 分发

默认情况下,Outlook 客户端配置为每 24 小时下载一次 OAB,或者用户可以随时从 Outlook 启动手动下载。

到客户端的 OAB 分发依赖于 Internet Information Services (IIS) 虚拟目录和自动发现服务。 用于客户端访问 OAB 的 IIS 虚拟目录位于邮箱服务器上客户端访问 (前端) 服务的默认网站中, (默认网站) 命名为 OAB。 此虚拟目录在安装 Exchange 时自动创建,并配置为在 URL https://<ServerName>/oab (为内部客户端提供服务, https://mailbox01.contoso.com/oab 例如,) 。 需要手动配置用于将 OAB 分发到外部客户端的外部 URL。 有关详细信息,请参阅在 Exchange 服务器上配置邮件流和客户端访问中的步骤 4:配置外部 URL

在 OAB 的属性中,可以配置可用于将 OAB 分发给客户端的 OAB 虚拟目录。 默认设置将 OAB 分发限制为保存 OAB 组织邮箱的服务器上的 OAB 虚拟目录。 但是, 任何 邮箱服务器上的客户端访问服务都可以将传入的 OAB 下载请求代理到正确的位置。 因此,建议将所有 OAB 虚拟目录配置为接受下载 OAB 的请求。 有关说明,请参阅 使用 Exchange 命令行管理程序将组织中的任何虚拟目录配置为接受 OAB 的下载请求

自动发现服务播发已配置的 OAB URL。 所有版本的 Outlook 以及 Exchange 当前几乎所有移动设备都支持自动发现。 下面是 OAB 分发过程的摘要:

  1. Outlook 从自动发现接收 OAB URL,并连接到邮箱服务器上的客户端访问 (前端) 服务。

  2. 接受连接的邮箱服务器上的客户端访问服务执行以下步骤:

    1. 查询 Active Directory 以查找负责生成用户 OAB 的组织邮箱 (默认 OAB、为邮箱数据库指定的 OAB 或为邮箱) 指定的 OAB。

    2. 再次查询 Active Directory 以查找托管 OAB 的组织邮箱的邮箱数据库,以及当前保存数据库的活动副本的邮箱服务器。

    3. 将 OAB 下载请求代理到标识的邮箱服务器。

    4. 从后端位置 %ExchangeInstallPath%ClientAccess\OAB\<GUID> 检索 OAB 文件,并将其代理回客户端。

如果本地 Active Directory 站点中的组织邮箱中存在 OAB 的影子副本 (用户从) 连接的站点,则使用本地邮箱服务器下载 OAB。 但是,组织邮箱之间的卷影副本同步是按需执行的。 以下是相应的工作方式:

  1. 假设组织邮箱没有合适的 OAB 卷影副本。 这可能是由以下情况引起的:

    • 客户端从未请求下载卷影副本。

    • 卷影副本已过期。 如果已手动生成并发布父 OAB 的更新副本, (或者默认的 8 小时 OAB 生成计划) ,则卷影副本可以识别。 受影响的邮箱服务器将停止向客户端分发过时的卷影副本。

  2. 尝试下载卷影副本的第一个客户端将在 Outlook 中收到错误 0x80190194 (BG_E_HTTP_ERROR_404) 。 这将触发从父副本到卷影副本的 OAB 的完整副本。 报告以下事件:

    • Event ID: 102

      Source: MSExchange OABRequestHandler

      Description: The OABRequestHandler has begun downloading the OAB <GUID> from the server <Server>.

    • Event ID: 103

      Source: MSExchange OABRequestHandler

      Description: The OABRequestHandler has finished downloading the OAB <GUID>.

  3. OABRequestHandler 立即尝试从保存父 OAB 生成邮箱的邮箱服务器复制 OAB 文件。 如果所有三次尝试都失败,将在 OABRequestHandler 一小时后重试复制。 报告以下事件:

    • Event ID: 104

      Source: MSExchange OABRequestHandler

      Description: Download of the OAB <GUID> failed. The job will be re-submitted. The error was: BG_ERROR_CONTEXT=BE_ERROR_CONTEXT_REMOTE_FILE; error code=0x80190194

    • Event ID: 105

      Source: MSExchange OABRequestHandler

      Description: Download of the OAB <GUID> has failed too many times. The job will not be resubmitted for the next hour.

  4. 如果 OAB 配置为进行影子分发,但本地 Active Directory 站点 (用户从) 连接的站点中没有组织邮箱,则客户端访问服务会将 OAB 下载请求代理回保留父 OAB 的组织邮箱的邮箱服务器。

导致完整 OAB 下载的条件

对 OAB 的改进通常需要客户端下载 OAB 更新,而不是完整和完整的 OAB。 但是,有时需要完整 OAB 下载。 例如:

  • 这些文件 Changes.oab 大于或等于完整 OAB 文件的一半大小。 Outlook 将更新 OAB 所需的压缩 Changes.oab 文件的总大小与服务器上压缩的完整 OAB 文件的总大小进行比较。

  • 例如,在 Outlook) 的初始设置过程中,计算机上没有 OAB (。

  • 服务器上缺少差异文件。 缺少差异文件可能是由以下情况引起的:

    • 默认情况下,超过 30 天未使用 Outlook 连接到 Exchange 邮箱, (差异文件在服务器上存储 30 天) 。

    • 服务器在更新 OAB 的本地副本所需的一天内无法生成差异文件。

  • 在服务器上提供了较新版本的 OAB, (例如,邮箱已从 Exchange 2010 升级,而 OAB 的本地副本为版本 3) 。

  • 向 OAB 应用更改失败。 例如,差异文件在服务器上损坏, (服务器在差异文件生成期间崩溃) 。

  • 在计算机上不存在 OAB (例如,你手动删除了一个或多个本地 OAB 文件) 。

  • 以前的完整下载失败,因此 Outlook 必须重新开始。

  • 你启动了完整 OAB 的手动下载。

OAB 规划和部署

无论是使用单个 OAB 还是多个 OAB,在规划和实施 OAB 策略时,请考虑以下因素:

  • 组织中每个 OAB 的大小。 OAB 大小从几兆字节到数百兆字节不等。 以下因素可能会影响 OAB 的大小:

    • 组织中证书的使用情况。 PKI) 证书 (公钥基础结构越多,OAB 就越大。 PKI 证书的范围为 1 kb (KB) 到 3 KB。 它们是 OAB 大小的单个最大贡献者。

    • 组织中的邮件收件人数。

    • 组织中的组数。

    • 组织添加到每个收件人对象的用户信息。 例如,某些组织为每个用户配置完整的地址和联系人详细信息。

  • OAB 下载次数。

  • Active Directory 中收件人对象的父可分辨名称的数目和频率更改。

  • SMTP 地址不匹配。

  • 对 Active Directory 所做的更改的总数。

  • 通过使用 Exchange 外部的方法隐藏在 Active Directory 中的收件人将显示在 OAB (例如,使用 Windows 安全描述符) 。 若要在 OAB 中有效地隐藏收件人,请在 Exchange 管理中心配置收件人的 “隐藏地址列表” 属性, (EAC) 或在 Exchange 命令行管理程序中的相应收件人管理 cmdlet 中 配置 HiddenFromAddressListsEnabled 参数。 有关详细信息,请参阅 隐藏地址列表中的收件人。 或者,可以创建不包含隐藏收件人的地址列表,将地址列表分配给 OAB,并将 OAB 分配给 (用户,或者通过将 OAB 设置为默认) 。 有关创建地址列表的详细信息,请参阅 创建地址列表

将 OAB 生成移到另一台服务器

在 Exchange 2010 中,将 OAB 代移到另一台服务器需要你在 OAB 的属性中指定不同的代服务器。 但在 Exchange 2013、Exchange 2016 和 Exchange 2019 中,OAB 生成发生在设计的组织邮箱中,而不是在指定的服务器上发生。 若要将 OAB 生成移动到另一台服务器,需要移动组织邮箱。 例如:

请记住,可以将多个 OAB 配置为使用同一个组织邮箱,但不能将 OAB 配置为使用多个组织邮箱。 如果需要在不同位置(通常 (不同 Active Directory 站点) )的多个 OAB 副本,请验证站点中是否存在组织邮箱,并为 OAB 启用影子分发。 有关详细信息,请参阅 使用 Exchange 命令行管理程序为脱机通讯簿启用影子分发