Exchange Server中脱机通讯簿的过程

Exchange Server 中的脱机通讯簿 (OAB) 允许处于缓存 Exchange 模式的 Outlook 用户在与服务器断开连接时访问地址列表和全局地址列表信息。 有关详细信息,请参阅 Exchange Server 中的脱机通讯簿

下面是本主题中介绍的 OAB 过程列表:

若要更改 OAB 生成计划,请参阅更改 Exchange Server 中的脱机通讯簿生成计划

开始前,有必要了解什么?

  • 估计完成每个步骤时间:5 分钟

  • 您必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅"脱机通讯簿"条目。

  • 无法在 Exchange 管理中心 (EAC) 执行大部分过程。 需要使用 Exchange 命令行管理程序。 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell。 有关 EAC 的详细信息,请参阅 Exchange Server 中的 Exchange 管理中心

  • 若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键

提示

是否有任何疑问? 请在 Exchange 论坛中寻求帮助。 请访问以下论坛:Exchange ServerExchange OnlineExchange Online Protection

使用 Exchange 命令行管理程序查看脱机通讯簿

若要查看 OAB,请使用以下语法:

Get-OfflineAddressBook [-Identity <OABIdentity>]

此示例返回组织中所有 OAB 的摘要列表。

Get-OfflineAddressBook

此示例返回与名为默认脱机通讯簿的 OAB 有关的详细信息。

Get-OfflineAddressBook -Identity "Default Offline Address Book" | Format-List

此示例返回组织中所有 OAB 上的指定属性的值。

Get-OfflineAddressBook | Format-List Name,GUID,AddressLists,GeneratingMailbox,IsDefault,VirtualDirectories,GlobalWebDistributionEnabled,ShadowMailboxDistributionEnabled

有关详细语法和参数信息,请参阅 Get-OfflineAddressBook

使用 Exchange 命令行管理程序创建脱机通讯簿

如果已创建多个地址列表,则可以使用 OAB 使地址列表在用户脱机时可供他们使用。

若要创建新的脱机通讯簿,请使用以下语法:

New-OfflineAddressBook -Name "<Name>" -AddressLists "<GlobalAddressListOrAddressList1>","<GlobalAddressListOrAddressList2>,..." [-GlobalWebDistributionEnabled $true] [-GeneratingMailbox <OrganizationMailboxIdentity>] [-IsDefault $true] [-ShadowMailboxDistributionEnabled $true]

此示例使用以下属性创建名为 Contoso Executives OAB 的新 OAB:

  • 默认全局地址列表和 Contoso 高管地址列表包含在 OAB 中。

  • 组织中的所有 OAB 虚拟目录都可以接受下载 OAB 的请求。

  • 负责生成 OAB 的组织邮箱 (SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} 未使用 GeneratingMailbox 参数指定其他组织邮箱) 。

  • 未指定 OAB 的邮箱和邮箱数据库不使用 OAB, (未使用具有值 $true) 的 IsDefault 参数。

  • OAB 的影子分发被禁用 (OAB 的只读副本不会复制到所有其他组织邮箱,因为我们没有使用 shadowMailboxDistributionEnabled 参数和值 $true) 。

New-OfflineAddressBook -Name "Contoso Executives OAB" -AddressLists "Default Global Address List","Contoso Executives Address List" -GlobalWebDistributionEnabled $true

有关语法和参数的详细信息,请参阅New-OfflineAddressBook

如何知道操作成功?

若要验证是否已成功创建 OAB,请运行以下命令来验证属性值:

Get-OfflineAddressBook | Format-List Name,AddressLists,GeneratingMailbox,IsDefault,VirtualDirectories,GlobalWebDistributionEnabled

使用 Exchange 命令行管理程序修改脱机通讯簿

若要修改 OAB,请使用以下语法:

Set-OfflineAddressBook -Identity "<OABIdentity>" [-Name <Name>] [-AddressLists "<GlobalAddressListOrAddressList1>","<GlobalAddressListOrAddressList2>,..."] [-VirtualDirectories $null] [-GlobalWebDistributionEnabled $true] [-GeneratingMailbox <OrganizationMailboxIdentity>] [-IsDefault $true] [-ShadowMailboxDistributionEnabled <$true | $false>]

有关语法和参数的详细信息,请参阅 Set-OfflineAddressBook

使用 Exchange 命令行管理程序配置默认脱机通讯簿

默认情况下,自动创建的名为“默认脱机通讯簿”的 OAB 是默认的 OAB。 默认的 OAB 用于:

  • 邮箱数据库中的邮箱,其中数据库默认没有分配 OAB (,所有数据库)

  • ) 分配没有通讯簿策略 (ABP 的邮箱,或者默认情况下,如果分配的 ABP 策略没有定义 OAB (,则不会) ABP。

  • 默认情况下,没有分配 OAB (的邮箱,所有邮箱)

此示例将名为 Contoso Executives OAB 的 OAB 配置为默认 OAB。

Set-OfflineAddressBook -Identity "Contoso Executives OAB" -IsDefault $true

使用 Exchange 命令行管理程序在脱机通讯簿中添加和删除地址列表

修改在 OAB 中配置的地址列表时,指定的值将 替换 OAB 中的任何地址列表。 若要将地址列表添加到 OAB,请指定当前地址列表以及要添加的地址列表。 若要从 OAB 中删除地址列表,请指定当前地址列表减去要删除的地址列表。

在此示例中,名为“市场营销 OAB”的 OAB 已配置了地址列表 1 和地址列表 2。 若要保留这些地址列表并添加地址列表 3,请运行以下命令:

Set-OfflineAddressBook -Identity "Marketing OAB" -Address Lists "Address List1","Address List 2","Address List 3"

同样,若要保留 OAB 配置地址列表 1 和地址 2,但删除地址列表 3,请运行以下命令:

Set-OfflineAddressBook -Identity "Marketing OAB" -AddressLists "Address List 1","Address List 2"

使用 Exchange 命令行管理程序更改负责生成脱机通讯簿的组织邮箱

通常,如果在不同的 Active Directory 站点中有 Exchange 服务器,则只需配置多个组织邮箱。 可以将多个 OAB 配置为使用同一个组织邮箱,但不能将 OAB 配置为使用多个组织邮箱。 如果需要在不同位置创建 OAB 的多个副本,请为 OAB 启用阴影分布。 有关详细信息,请参阅本主题中的 使用 Exchange 命令行管理程序为脱机通讯簿启用影子分发 部分。

此示例更改负责生成名为“默认脱机通讯簿”的 OAB 的组织邮箱。

Set-OfflineAddressBook -Identity "Default Offline Address Book" -GeneratingMailbox OABGen2

注意:若要配置可以用作组织邮箱的仲裁邮箱,请参阅本主题中的 使用 Exchange 命令行管理程序创建组织邮箱 部分。

使用 Exchange 命令行管理程序配置组织中任何虚拟目录以接受 OAB 的下载请求

任何邮箱服务器上的客户端访问 (前端) 服务都可以将 OAB 下载请求代理到正确的位置。 OAB 文件是从保存 OAB 指定组织邮箱的活动副本 (邮箱服务器上的后端位置 %ExchangeInstallPath%ClientAccess\OAB\<OAB GUID> 下载的,或者从保存 OAB) 影子副本的服务器下载的。

此示例修改名为“默认脱机通讯簿”的 OAB,以允许组织中的任何虚拟目录接受下载 OAB 的请求。

  1. 运行以下命令:

    Set-OfflineAddressBook -Identity "Default Offline Address Book" -VirtualDirectories $null
    
  2. 运行以下命令:

    Set-OfflineAddressBook -Identity "Default Offline Address Book" -GlobalWebDistributionEnabled $true
    

使用 Exchange 命令行管理程序为脱机通讯簿启用影子分发

在启用影子分发以将 OAB 的只读副本分发到不同 Active Directory 站点中的组织邮箱之前,请验证每个站点中是否存在组织邮箱。 若要创建组织邮箱,请参阅本主题中的 使用 Exchange 命令行管理程序创建组织邮箱 部分。

此示例为名为 Contoso Executives OAB 的 OAB 启用影子分发。

Set-OfflineAddressBook -Identity "Contoso Executives OAB" -ShadowMailboxDistributionEnabled $true

如何知道操作成功?

若要验证是否已成功修改 OAB,请运行以下命令来验证属性值:

Get-OfflineAddressBook | Format-List Name,AddressLists,GeneratingMailbox,IsDefault,VirtualDirectories,GlobalWebDistributionEnabled,

使用 Exchange 命令行管理程序更新脱机通讯簿

默认情况下,在计划的 OAB 生成 ((每 8 小时) )之前,用户才能使用 OAB 中的更改。 如果不想等待,可以使用本主题中的过程立即更新 OAB。

若要更改 OAB 生成计划,请参阅更改 Exchange Server 中的脱机通讯簿生成计划

若要更新 OAB,请使用以下语法:

Update-OfflineAddressBook -Identity <OABIdentity>

此示例更新名为“默认脱机通讯簿”的 OAB。

Update-OfflineAddressBook -Identity "Default Offline Address Book"

此示例更新所有 OAB。

Get-OfflineAddressBook | Update-OfflineAddressBook

有关语法和参数的详细信息,请参阅 Update-OfflineAddressBook

使用 Exchange 命令行管理程序删除脱机通讯簿

若要删除 OAB,请使用以下语法:

Remove-OfflineAddressBook -Identity <OABIdentity>

此示例删除名为 Contoso Executives OAB 的 OAB。

Remove-OfflineAddressBook -Identity "Contoso Executives OAB"

注意:如果删除的 OAB 是默认 OAB,则需要创建或配置另一个 OAB 作为默认 (IsDefault 参数值) $true

如何知道操作成功?

若要验证是否已成功删除 OAB,请运行以下命令以验证 OAB 是否已消失。

Get-OfflineAddressBook

使用 Exchange 命令行管理程序查找组织邮箱

只有组织邮箱才能生成 OAB。 组织邮箱是具有 PersistedCapability 属性中的值的仲裁邮箱OrganizationCapabilityOABGen。 若要查找组织中的组织邮箱,请运行以下命令:

Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*OAB*"} | Format-List Name,ServerName,PersistedCapabilities

若要查找用于生成 OAB 的组织邮箱,请运行以下命令:

Get-OfflineAddressBook | Format-List Name,AddressLists,GeneratingMailbox,IsDefault

使用 Exchange 命令行管理程序创建组织邮箱

通常,只需在多站点 Exchange 组织中创建多个仲裁邮箱。 每个站点中都可以有一个组织邮箱,并且可以为 OAB (配置影子分发,以便在) 的所有组织邮箱中存储 OAB 的只读副本。 有关详细信息,请参阅 使用 Exchange 命令行管理程序为脱机通讯簿启用影子分发

你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 收件人权限主题中的"收件人设置权限"部分。

  1. 使用以下语法创建仲裁邮箱:

    New-Mailbox -Arbitration -Name <UniqueName> -UserPrincipalName <UPN> [-Database <DBIdentity>] [-Alias <Alias>] [-DisplayName "<DisplayName>"]
    

    本示例创建一个名为 OAB Gen 2 的新仲裁邮箱,其 UPN (帐户名) oabgen2@contoso.com在默认数据库中。

    New-Mailbox -Arbitration -Name "OAB Gen 2" -UserPrincipalName oabgen2@contoso.com
    
  2. 使用以下语法将仲裁邮箱转换为组织邮箱:

    Set-Mailbox -Identity <MailboxIdentity> -Arbitration -OABGen $true -MaxSendSize 1GB
    

    此示例将 OAB Gen 2 仲裁邮箱转换为组织邮箱。

    Set-Mailbox -Identity "OAB Gen 2" -Arbitration -OABGen $true -MaxSendSize 1GB
    
  3. 若要激活新组织邮箱的 OAB 生成功能,请为组织中的任何 OAB 运行 Update-OfflineAddressBook。 例如:

    Update-OfflineAddressBook -Identity "Default Offline Address Book"
    

如何知道操作成功?

若要验证是否已成功创建组织邮箱,请运行以下命令并验证是否返回邮箱:

Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*OAB*"} | Format-List Name,ServerName,PersistedCapabilities

将脱机通讯簿分配给邮箱数据库

将 OAB 分配给邮箱数据库时,数据库中的所有邮箱都将使用该 OAB 而不是默认 OAB,除非邮箱分配了 OAB。 默认情况下,不会将 OAB 分配给邮箱数据库。

你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 收件人权限主题中的"邮箱数据库"条目。

使用 EAC 将脱机通讯簿分配给邮箱数据库

  1. 打开 EAC,然后转到 “服务器>数据库”。 从列表中选择数据库,然后单击 “编辑” (“编辑”图标。) 。

    在 EAC 中,转到“服务器 > 数据库”,选择数据库,然后单击“编辑”。

  2. 此时将打开 “邮箱数据库 ”窗口。 单击“客户端设置”选项卡,然后单击“脱机通讯簿”旁边的“浏览”。

    在数据库的属性中,选择“客户端设置”,然后单击“浏览”。

  3. 在打开 的“选择脱机通讯簿 ”窗口中,从列表中选择 OAB,然后单击“ 确定”。

  4. 返回“ 邮箱数据库 ”窗口,单击“ 保存”。

使用 Exchange 命令行管理程序将脱机通讯簿分配给邮箱数据库

使用以下语法:

Set-MailboxDatabase -Identity <DatabaseIdentity> -OfflineAddressBook <OABIdentity>

此示例将名为 Contoso Executives OAB 的 OAB 分配给名为 MBX DB02 的邮箱数据库。

Set-MailboxDatabase -Identity "MBX DB02" -OfflineAddressBook "Contoso Executives OAB"

如何知道操作成功?

若要验证是否已成功将 OAB 分配给邮箱数据库,请使用以下任一过程:

  • 在 EAC 中,转到 “服务器>数据库”。 从列表中选择数据库,然后单击 “编辑” (“编辑”图标。) 。 在“ 邮箱数据库 ”窗口中,单击“ 客户端设置 ”选项卡,并验证 OAB 是否已在脱机通讯簿中列出。

  • 在 Exchange 命令行管理程序中,运行以下命令:

    Get-MailboxDatabase | Format-Table -Auto Name,OfflineAddressBook
    

使用 Exchange 命令行管理程序将脱机通讯簿分配给邮箱

将 OAB 分配给邮箱时,如果邮箱未使用任何) ,则分配给邮箱数据库的默认 OAB 和 OAB (。 默认情况下,不会将 OAB 分配给邮箱。

注意:如果邮箱具有 (ABP) 分配的通讯簿策略,并且 ABP 定义了 OAB,则直接分配给邮箱的 OAB 将优先于 ABP。 有关详细信息,请参阅 Exchange Server 中的通讯簿策略

你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 收件人权限主题中的"收件人设置权限"部分。

若要将 OAB 分配给邮箱,请使用以下语法:

Set-Mailbox -Identity <MailboxIdentity> -OfflineAddressBook <OABIdentity>

本示例将名为 Contoso Executives 的 OAB 分配给邮箱 laura@contoso.com。

Set-Mailbox -Identity laura@contoso.com -OfflineAddressBook "Contoso Executives OAB"

本示例将名为 Contoso US 的 OAB 分配给筛选的邮箱列表。

$USContoso = Get-User -ResultSize Unlimited -Filter "RecipientType -eq 'UserMailbox' -and Company -eq 'Contoso' -and CountryOrRegion -eq 'US'"; $USContoso | foreach {Set-Mailbox $_.Identity -OfflineAddressBook "Contoso United States"}

如何知道操作成功?

若要验证是否已成功将 OAB 分配给邮箱,请将 MailboxIdentity> 替换为<邮箱的标识,并运行以下命令:

Get-Mailbox -Identity "<MailboxIdentity>" | Format-Table -Auto Name,OfflineAddressBook