通过通讯簿策略 (ARP) ,可以将用户细分为特定组,以在 Outlook 和 Outlook 网页版 (Outlook Web App) 中) 的 GALs (自定义全局地址列表。 有关 ABP 的详细信息,请参阅 Exchange Server 中的通讯簿策略

注意 :实现 ABP 是一个需要规划的多步骤过程。 有关详细信息,请参阅 方案:在 Exchange Server 中部署通讯簿策略

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

  • 估计完成每个过程的时间:少于 5 分钟。

  • 可以将 ABP 分配到 Exchange 管理中心的邮箱 (EAC) ,但所有其他 ABP 过程都需要 Exchange 命令行管理程序。 有关访问和使用 EAC 的详细信息,请参阅 Exchange Server 中的 Exchange 管理中心 。 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell

  • 您必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 电子邮件地址和通讯簿权限 主题中的"通讯簿策略"条目。

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

  • 有疑问吗? 请在 Exchange 论坛中寻求帮助。 请访问以下论坛: Exchange Server Exchange Online Exchange Online Protection

    使用 Exchange 命令行管理程序查看通讯簿策略

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

    Get-AddressBookPolicy [-Identity <ABPIdentity>]
    

    此示例返回组织中所有 ABP 的摘要列表:

    Get-AddressBookPolicy
    

    此示例返回名为 All Fabrikam ABP 的 ABP 的详细信息。

    Get-AddressBookPolicy -Identity "All Fabrikam ABP" | Format-List
    

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

    使用 Exchange 命令行管理程序创建通讯簿策略

    ABP 需要一个全局地址列表 (GAL) 、一个脱机通讯簿 (OAB) 、一个会议室列表和一个或多个地址列表。 若要查看可用对象,请使用 Get-GlobalAddressListGet-OfflineAddressBookGet-AddressList cmdlet。

    注意:ABP 所需的会议室列表是指定会议室 (包含筛选器 RecipientDisplayType -eq 'ConferenceRoomMailbox') 的地址列表。 它不是使用 New-DistributionGroup 或 Set-DistributionGroup cmdlet 上的 RoomList 开关创建的会议室查找器通讯

    若要创建 ABP,请使用以下语法:

    New-AddressBookPolicy -Name "<Unique Name>" -GlobalAddressList "<GAL>" -OfflineAddressBook "<OAB>" -RoomList "<RoomList>" -AddressLists "<AddressList1>","<AddressList2>"...
    

    此示例使用以下设置创建名为 All Fabrikam ABP 的 ABP:

  • GAL:All Fabrikam

  • OAB:Fabrikam-All-OAB

  • 会议室列表:All Fabrikam Rooms

  • 地址列表:所有 Fabrikam 邮箱、所有 Fabrikam DLL 和所有 Fabrikam 联系人

    New-AddressBookPolicy -Name "All Fabrikam ABP" -GlobalAddressList "\All Fabrikam" -OfflineAddressBook \Fabrikam-All-OAB -RoomList "\All Fabrikam Rooms" -AddressLists "\All Fabrikam Mailboxes","\All Fabrikam DLs","\All Fabrikam Contacts"
    

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

    如何知道操作成功?

    若要验证是否已成功创建 ABP,请使用以下任一过程:

  • 在 Exchange 命令行管理程序中运行此命令,验证 ABP 是否已列出:

    Get-AddressBookPolicy
    
  • ABPIdentity> 替换为< ABP 的名称,并在 Exchange 命令行管理程序中运行以下命令以验证属性值:

    Get-AddressBookPolicy -Identity "<ABPIdentity>" | Format-List
    

    使用 Exchange 命令行管理程序修改通讯簿策略

    使用 Set-AddressBookPolicy cmdlet 修改现有 ABP。 这些设置与创建 ABP 时可用的设置相同。

  • NameGlobalAddressListOfflineAddressBookRoomList 参数均采用单个值,因此指定的值将替换现有值。

    此示例通过将 OAB 替换为指定的 OAB 来修改名为“All Fabrikam ABP”的 ABP。

    Set-AddressBookPolicy -Identity "All Fabrikam ABP" -OfflineAddressBook \Fabrikam-OAB-2
    
  • AddressLists 参数采用多个值,因此需要确定是要替换 ABP 中的现有地址列表,还是添加和删除地址列表,而不会影响 ABP 中的其他地址列表。

    此示例将 ABP 中名为“政府机构 A”的现有地址列表替换为指定的地址列表。

    Set-AddressBookPolicy -Identity "Government Agency A" -AddressLists "GovernmentAgencyA-Atlanta","GovernmentAgencyA-Moscow"
    

    若要向 ABP 添加地址列表,需要指定要保留的新地址列表 任何现有地址列表。

    本示例将名为 Contoso-Chicago 的地址列表添加到名为 ABP Contoso 的 ABP(已被配置为使用名为 Contoso-Seattle 的地址列表)中。

    Set-AddressBookPolicy -Identity "ABP Contoso" -AddressLists "Contoso-Chicago","Contoso-Seattle"
    

    若要从 ABP 中删除地址列表,需要指定要保留的现有地址列表,并省略要删除的地址列表。

    例如,名为 ABP Fabrikam 的 ABP 使用地址列表 Fabrikam-HR 和 Fabrikam-Finance。 若要删除 Fabrikam-HR 地址列表,请仅指定Fabrikam-Finance地址列表。

    Set-AddressBookPolicy -Identity "ABP Fabrikam" -AddressLists Fabrikam-Finance
    

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

    如何知道操作成功?

    若要验证是否已成功修改 ABP,请将 ABPIdentity> 替换为< ABP 的名称,并在 Exchange 命令行管理程序中运行此命令以验证属性值:

    Get-AddressBookPolicy -Identity "<ABPIdentity>" | Format-List
    

    使用 Exchange 命令行管理程序删除通讯簿策略

  • 如果 ABP 已分配给邮箱,则无法删除该 ABP。 若要查看 ABP 是否已分配给邮箱,请将 ABPIdentity> 替换为< ABP 的名称,并在 Exchange 命令行管理程序中运行以下命令以获取 DistinguishedName 值:

    Get-AddressBookPolicy -Identity <ABPIdentity> | Format-List DistinguishedName

    然后,在此命令中使用 ABP 的 DistinguishedName 值显示分配了 ABP 的所有邮箱:

    Get-Mailbox -ResultSize unlimited -Filter "AddressBookPolicy -eq '<DistinguishedName>'"

  • 若要从邮箱中删除 ABP 分配,请参阅本主题中的 将通讯簿策略分配到邮箱 部分。

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

    Remove-AddressBookPolicy -Identity <ABPIdentity>
    

    此示例删除名为 ABP_TailspinToys 的 ABP。

    Remove-AddressBookPolicy -Identity "ABP_TailspinToys"
    

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

    如何知道操作成功?

    若要验证是否已成功删除 ABP,请使用以下任一过程:

  • 在 Exchange 命令行管理程序中运行此命令,验证 ABP 是否未列出:

    Get-AddressBookPolicy
    
  • ABPIdentity> 替换为< ABP 的名称,并运行此命令以确认返回了错误:

    Get-AddressBookPolicy -Identity "<ABPIdentity>"
    

    将通讯簿策略分配给邮箱

  • 创建邮箱时,不会自动为用户分配 ABP。 如果未将 ABP 分配给邮箱,则整个组织的 GAL 对 Outlook 中的用户可见,Outlook 网页版。

  • 若要标识虚拟组织的 ABPs,建议对邮箱、联系人和组使用 CustomAttribute1-15 属性,因为这些属性对于所有收件人类型最广泛可用且易于管理。 有关详细信息,请参阅方案:在 Exchange Server 中部署通讯簿策略

  • 向邮箱分配 ABP 或从邮箱中删除 ABP 分配的过程是相同的:

  • 若要将 ABP 分配给邮箱,请在 EAC 中选择 ABP,或在 Exchange 命令行管理程序中指定 ABP。

  • 若要从邮箱中删除 ABP 分配,请在 EAC 中选择值 [No Policy] ,或使用 Exchange 命令行管理程序中的值 $null

    注意:还可以在 EAC 中创建用户邮箱时分配 ABP,方法是单击“ 更多选项”,然后单击“ 通讯簿策略”中的下拉箭头。

    使用 Exchange 命令行管理程序将通讯簿策略分配给单个邮箱

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

    Set-Mailbox -Identity <MailboxIdentity> -AddressBookPolicy <ABPIdentity> or $null
    

    本示例将名为 All Fabrikam 的 ABP 分配给邮箱 joe@fabrikam.com。

    Set-Mailbox -Identity joe@fabrikam.com -AddressBookPolicy "All Fabrikam"
    

    注意:使用 AddressBookPolicy 参数创建具有 New-Mailbox cmdlet 的用户邮箱时,还可以分配 ABP。 如果在创建邮箱时未指定 ABP,则不会分配 ABP, (默认值为空白或 $null) 。

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

    使用 EAC 将通讯簿策略分配给多个邮箱

  • 在 EAC 中,转到 “收件人>邮箱”。

  • 在邮箱列表中,找到要修改的邮箱。 例如:

  • 单击“ 更多选项”“更多选项”图标。>高级搜索

  • 在打开 的“高级搜索 ”窗口中,选择“ 收件人类型 ”并验证默认值 “用户邮箱”。

  • 单击“ 更多选项”,然后单击“ 添加条件”。

  • 在显示的“选择一个”下拉框中,选择用于定义虚拟组织的相应“自定义属性 1”到“自定义属性 15”值。

  • 在出现的 “指定字词或短语 ”对话框中,输入要搜索的值,然后单击“ 确定”。

  • 返回“ 高级搜索 ”窗口,单击“ 确定”。 在“收件人邮箱”的 EAC 中>,单击“更多选项”图标。>用于查找用户邮箱的高级搜索

  • 在邮箱列表中,选择相同类型的多个邮箱, (例如,从列表中选择 “用户) ”。 例如:

  • 选择一个邮箱,按住 Shift 键,然后选择列表中更远的另一个邮箱。

  • 在选择每个邮箱时按住 Ctrl 键。

    选择相同类型的多个邮箱后,详细信息窗格的标题将更改为 “批量编辑”。

  • 在详细信息窗格中,向下滚动并单击“ 更多选项”,向下滚动到 “通讯簿策略”,然后单击“ 更新”。

  • 在打开的 “批量分配通讯簿策略 ”窗口中,单击“ 选择通讯簿策略”中的下拉箭头选择 ABP,然后单击“ 保存”。

    使用 Exchange 命令行管理程序将通讯簿策略分配给多个邮箱

    可以使用 Get-MailboxGet-Content cmdlet 来标识要将 ABP 分配到的用户邮箱。 例如:

  • 使用 Filter 参数创建用于标识邮箱的 OPATH 筛选器。 有关详细信息,请参阅 -Filter 参数的可筛选属性

  • 使用文本文件指定邮箱。 文本文件每行包含一个邮箱 (电子邮件地址、姓名或其他唯一标识符) ,如下所示:

    ebrunner@tailspintoys.com
    fapodaca@tailspintoys.com
    glaureano@tailspintoys.com
    hrim@tailspintoys.com

    此示例将名为 ABP_EngineeringDepartment 的 ABP 分配给属性包含值“工程部门”的所有用户邮箱 CustomAttribute11

    Get-Mailbox -Filter "RecipientType -eq 'UserMailbox' -and CustomAttribute11 -like '*Engineering Department'" | Set-Mailbox -AddressBookPolicy "ABP_EngineeringDepartment"
    

    此示例使用文本文件 C:\My Documents\Accounts.txt将相同的 ABP 分配给指定的用户邮箱。

    Get-Content "C:\My Documents\Accounts.txt" | foreach {Set-Mailbox $_ -AddressBookPolicy "ABP_EngineeringDepartment"}
    

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

    如何知道操作成功?

    若要验证是否已成功将 ABP 分配到邮箱,请执行以下任一步骤:

  • 在 EAC 中,转到 “收件人>邮箱> ”,选择邮箱 > ,单击 “编辑”图标。>邮箱功能和 验证 通讯簿策略 值。

  • 在 Exchange 命令行管理程序中,将 MailboxIdentity> 替换为<邮箱 (的标识,例如名称、别名或电子邮件地址) ,然后运行以下命令:

    Get-Mailbox -Identity "<MailboxIdentity>" | Format-List AddressBookPolicy
    
  • 在 Exchange 命令行管理程序中,使用用于标识邮箱的同一筛选器。 例如:

    Get-Mailbox -Filter "RecipientType -eq 'UserMailbox' -and CustomAttribute11 -like '*Engineering Department'" | Format-Table -Auto Name,EmailAddress,AddressBookPolicy
    
  • 在 Exchange 命令行管理程序中,将 ABPIdentity> 替换为< ABP 的名称,并运行以下命令以获取 DistinguishedName 值:

    Get-AddressBookPolicy -Identity <ABPIdentity> | Format-List DistinguishedName
    

    然后,在此命令中使用 ABP 的 DistinguishedName 值显示分配了 ABP 的所有邮箱:

    Get-Mailbox -ResultSize unlimited -Filter "AddressBookPolicy -eq '<DistinguishedName>'"
    

    使用 Exchange 命令行管理程序安装和配置通讯簿策略路由代理

    通讯簿策略路由 (ABP 路由) 控制在使用 ABP 的组织中如何解析收件人。 启用 ABP 路由后,分配了不同 GAL 的用户将彼此显示为外部收件人。

    ABP 路由要求在组织中的所有邮箱服务器上安装并启用通讯簿策略路由代理 (ABP 路由代理) ,并在组织中全局启用 ABP 路由。 执行此操作后,ABP 路由代理最多可能需要 30 分钟才能处理消息。

    你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 邮件流权限主题中的"传输代理"条目。

    步骤 1:安装 ABP 路由代理

    若要在本地邮箱服务器上安装 ABP 路由代理,请在组织中的每个邮箱服务器上运行此命令。

    Install-TransportAgent -Name "ABP Routing Agent" -TransportAgentFactory "Microsoft.Exchange.Transport.Agent.AddressBookPolicyRoutingAgent.AddressBookPolicyRoutingAgentFactory" -AssemblyPath $env:ExchangeInstallPath\TransportRoles\agents\AddressBookPolicyRoutingAgent\Microsoft.Exchange.Transport.Agent.AddressBookPolicyRoutingAgent.dll
    

    注意:将收到一条警告,指出需要重启传输服务才能使更改生效。 但是,在完成步骤 2 (之前不要重启传输服务,因此只需重启传输服务一次) 。

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

    步骤 2:启用 ABP 路由代理

    若要在本地邮箱服务器上启用 ABP 路由代理,请在组织中的每个邮箱服务器上运行此命令。

    Enable-TransportAgent "ABP Routing Agent"
    

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

    步骤 3:重启传输服务

    若要重启传输服务,请在组织中的每个邮箱服务器上运行此命令。

    Restart-Service MSExchangeTransport
    

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

    步骤 4:在 Exchange 组织中全局启用 ABP 路由

    若要在 Exchange 组织中全局启用 ABP 路由,请在任何邮箱服务器上运行一次以下命令:

    Set-TransportConfig -AddressBookPolicyRoutingEnabled $true
    

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

    注意:若要在启用 ABP 路由后禁用它,请执行以下步骤:

  • 在任何邮箱服务器上运行一次此命令,以全局禁用 ABP 路由:

    Set-TransportConfig -AddressBookPolicyRoutingEnabled $false
    
  • 通过在安装了代理的每个邮箱服务器上运行以下命令来禁用 ABP 路由代理:

    Disable-TransportAgent "ABP Routing Agent"
    
  • 在安装了代理的每个邮箱服务器上运行以下命令:

    Restart-Service MSExchangeTransport
    

    如何知道操作成功?

    若要验证是否已成功安装和配置 ABP 路由代理,请使用以下任一步骤:

  • 在邮箱服务器上运行以下命令,验证是否为组织启用了 ABP 路由:

    Get-TransportConfig | Format-List AddressBookPolicyRoutingEnabled
    
  • 在每个邮箱服务器上运行以下命令,验证 ABP 路由代理是否已启用:

    Get-TransportAgent "ABP Routing Agent"
    
  • 让分配有 ABP 的用户向分配了不同 ABP 的用户发送电子邮件,并验证发件人的电子邮件地址是否未解析为其显示名称。

  •