管理 Exchange Online 中的地址列表

地址列表是 Exchange Online 中启用邮件的收件人对象的集合。 地址列表基于收件人筛选器。 有关地址列表的详细信息,请参阅 Exchange Online 中的地址列表

有关地址列表的更多管理任务,请参阅 Exchange Online 中的地址列表过程

是否正在寻找此主题的 Exchange Server 版本? 请参阅 创建地址列表

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

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

  • 默认情况下,在 Exchange Online 中,地址列表角色不会分配给任何角色组。 若要使用需要地址列表角色的任意 cmdlet,您需要向角色组添加此角色。 有关详细信息,请参阅 修改角色组

  • 只能使用 Exchange Online PowerShell 执行本主题中的几乎所有过程, (除从地址列表中隐藏收件人) 之外的所有过程。 若要连接到 Exchange Online PowerShell,请参阅连接到 Exchange Online PowerShell

提示

是否有任何疑问? 在 Exchange 论坛中寻求帮助。 访问 Exchange OnlineExchange Online Protection 的论坛。

使用 Exchange Online PowerShell 创建地址列表

可创建带或不带收件人筛选器的地址列表。 有关收件人筛选器的详细信息,请参阅 Exchange Online PowerShell 中地址列表的收件人筛选器

若要创建地址列表,请使用以下语法:

New-AddressList -Name "<Address List Name>" [-Container <ExistingAddressListPath>] [<Precanned recipient filter | Custom recipient filter>] [-RecipientContainer <OrganizationalUnit>]

此示例创建一个地址列表,其中包含一个预设的收件人筛选器:

  • 名称:东南办事处

  • 位置:根 (“\下,也称为”所有地址“Lists) ,因为我们未使用 Container 参数,默认值为”\”。

  • 预先设置的收件人筛选器:邮箱的州 或省/自治区 /直辖市/自治区 (/直辖市/自治区/直辖市/) 自治区/直辖市/

New-AddressList -Name "Southeast Offices" -IncludedRecipients MailboxUsers -ConditionalStateorProvince "GA","AL","LA"

此示例使用自定义收件人筛选器创建地址列表:

  • 姓名:西北行政人员

  • 位置:在名为 北美 的现有地址列表下。

  • 自定义收件人筛选器:具有“ 标题 ”值包含“主管”或“经理”且 “州/自治区 ”值为 WA、OR 或 ID (华盛顿、俄勒冈州或爱达荷州) 的邮箱的所有用户。

New-AddressList -Name "Northwest Executives" -Container "\North America"-RecipientFilter "(RecipientType -eq 'UserMailbox') -and (Title -like '*Director*' -or Title -like '*Manager*') -and (StateOrProvince -eq 'WA' -or StateOrProvince -eq 'OR' -or StateOrProvince -eq 'ID')"

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

此示例使用 RecipientFilter 参数创建名为 Oregon 和 Washington Users 的地址列表,并包含邮箱用户且 StateOrProvince 设置为 WashingtonOregon的收件人。

New-AddressList -Name "Oregon and Washington" -RecipientFilter "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'Washington') -or (StateOrProvince -eq 'Oregon')))"

此示例使用内置条件在 All Rooms 父容器中创建 Building 34 Meeting Rooms 子地址列表。

New-AddressList -Name "Building 34 Meeting Rooms" -Container "\All Rooms" -IncludedRecipients Resources -ConditionalCustomAttribute1 "Building 34"

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

如何知道操作成功?

若要验证是否已成功创建地址列表,请将 AddressListIdentity> 替换为<地址列表\n路径,并在 Exchange Online Powershell 中运行以下命令以验证属性值:

Get-AddressList -Identity "<AddressListIdentity>" | Format-List Name,RecipientFilterType,RecipientFilter,IncludedRecipients,Conditional*

使用 Exchange Online Powershell 查看地址列表的成员

从技术上讲,此过程返回 所有 收件人 (包括与地址列表的收件人筛选器匹配的隐藏收件人) 。 地址列表中实际可见的收件人具有 HiddenFromAddressListsEnabled 属性值 False

若要查看地址列表的成员,请使用以下语法:

$<VariableName> = Get-AddressList -Identity <AddressListIdentity>; Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $<VariableName>.RecipientFilter | select Name,PrimarySmtpAddress,HiddenFromAddressListsEnabled

此示例返回名为 Southeast Office 的地址列表的成员。

$AL = Get-AddressList -Identity "Southeast Offices"; Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $AL.RecipientFilter | select Name,PrimarySmtpAddress,HiddenFromAddressListsEnabled

此示例将结果导出到文件 C:\My Documents\Southeast Office Export.csv。

$AL = Get-AddressList -Identity "Southeast Offices"; Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $AL.RecipientFilter | select Name,PrimarySmtpAddress,HiddenFromAddressListsEnabled | Export-Csv -NoTypeInformation -Path "C:\My Documents\Southeast Offices Export.csv"

使用 Exchange Online PowerShell 更新地址列表

Update-AddressList cmdlet(或 Update-GlobalAddressList)在 Exchange Online PowerShell 中不可用。 如果应显示地址列表的收件人没有,则需要将这些用户的所需属性值更改为临时值,然后返回到地址列表所需的值。 可以在 Exchange 管理中心更新用户属性值, (EAC) 或Exchange Online PowerShell,但在 PowerShell 中执行批量操作会更快。

例如,假设名为 Oregon 和 Washington Users 的地址列表使用筛选器 "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'Washington') -or (StateOrProvince -eq 'Oregon')))",但地址列表不包括正确设置 StateOrProvince 属性值的所有人。 若要更新地址列表,请按照以下步骤操作:

  1. 使用地址列表中的查询来查找应在地址列表中显示的所有用户。 例如:

    $Before = Get-User -Filter "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'Oregon') -or (StateOrProvince -eq 'Washington')))" -ResultSize Unlimited
    
  2. 将所需的属性更改为临时值。 例如,将 StateOrProvince 值从 Oregon 更改为 OR, 并将 Washington 更改为 WA

    $Before | where {$_.StateOrProvince -eq 'Oregon'} | foreach {Set-User $_.Identity -StateOrProvince OR}
    
    $Before | where {$_.StateOrProvince -eq 'Washington'} | foreach {Set-User $_.Identity -StateOrProvince WA}
    
  3. 通过使用临时属性值再次找到那些相同的用户。 例如:

    $After = Get-User -Filter "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'OR') -or (StateOrProvince -eq 'WA')))" -ResultSize Unlimited
    
  4. 将临时值更改回所需的值。 例如,将 StateOrProvince 值从 OR 更改为 Oregon, 并将 WA 更改为 Washington

    $After | where {$_.StateOrProvince -eq 'OR'} | foreach {Set-User $_.Identity -StateOrProvince Oregon}
    
    $After | where {$_.StateOrProvince -eq 'WA'} | foreach {Set-User $_.Identity -StateOrProvince Washington}
    

注意:

  • 游戏、部门和地址属性需要 Get-UserSet-User cmdlet。 CustomAttribute1 至 CustomAttribute15 属性需要 Get-MailboxSet-Mailbox cmdlet。 有关哪些属性可用于哪些 cmdlet 的详细信息,请参阅以下主题:

  • 如果只有少量用户未显示在地址列表中,您可以修改每个用户所需的属性值。 例如:

    1. 为该用户设置一个临时的属性值:

      Set-User -Identity <UserIdentity> -StateOrProvince WA
      
    2. 将临时值更改回所需的值:

      Set-User -Identity <Identity> -StateOrProvince Washington
      

如何知道操作成功?

若要验证是否已成功更新地址列表,请将 AddressListIdentity> 替换为<地址列表的名称,并在 Exchange Online PowerShell 中运行以下命令以验证 RecipientFilterApplied 属性值:

Get-AddressList -Identity <AddressListIdentity> | Format-Table Name,RecipientFilterApplied -Auto

使用 Exchange Online PowerShell 修改地址列表

与创建地址列表时相同的基本设置也可用。 有关详细信息,请参阅本主题中的使用 Exchange Online PowerShell 创建地址列表部分。

若要修改现有地址列表,请使用以下语法:

Set-AddressList -Identity <AddressListIdentity> [-Name <Name>] [<Precanned recipient filter | Custom recipient filter>] [-RecipientContainer <OrganizationalUnit>]

修改 条件 参数值时,可以使用以下语法添加或删除值,而不会影响其他现有值: @{Add="<Value1>","<Value2>"...; Remove="<Value1>","<Value2>"...}

本示例通过将 “州或省/自治区 ”值 TX (得克萨斯州) 添加到固有收件人筛选器来修改名为“东南办事处”的现有地址列表。

Set-AddressList -Identity "Southeast Offices" -ConditionalStateOrProvince @{Add="TX"}

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

如何知道操作成功?

若要验证是否已成功修改地址列表,请将 AddressListIdentity> 替换为<地址列表\name 的路径,并在 Exchange Online Powershell 中运行以下命令以验证属性值:

Get-AddressList -Identity "<AddressListIdentity>" | Format-List Name,RecipientFilterType,RecipientFilter,IncludedRecipients,Conditional*

使用 Exchange Online PowerShell 删除地址列表

若要删除地址列表,请使用以下语法:

Remove-AddressList -Identity "<AddressListName>"

本示例删除地址列表"Sales Department",它不包含子地址列表。

Remove-AddressList -Identity "Sales Department"

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

如何知道操作成功?

若要验证是否已成功删除地址列表,请在 Exchange Online Powershell 中运行以下命令,验证地址列表是否未列出:

Get-AddressList

隐藏地址列表中的收件人

从地址列表中隐藏收件人不会阻止收件人接收电子邮件;它阻止用户在地址列表中查找收件人。 收件人在所有地址列表和 GAL(实际上,他们是所有地址列表中的收件人筛选器的例外)中都会隐藏。 如果要将收件人包括在某些地址列表中,而不包含在其他地址列表中,你需要调整地址列表中的收件人筛选器,以包括或排除该收件人。

从地址列表中隐藏收件人也可能阻止通过通讯簿搜索找到用户。 例如, (自动助理服务语音识别) [/microsoftteams/dial-voice-reference] 将无法查找呼叫并将其重定向到此收件人。

使用新的 EAC 从地址列表中隐藏收件人

若要打开新的 EAC,请参阅 Exchange Online 中的 Exchange 管理中心

不能使用新的 EAC 从地址列表中隐藏Microsoft 365 个组。

  1. 在新 EAC 中,根据收件人类型转到以下位置之一:

    • 收件人>邮箱:用户邮箱。

    • 收件人>:通讯组、启用邮件的安全组和动态通讯组。

    • 收件人>资源:会议室和设备邮箱。

    • 收件人>联系人:邮件用户和邮件联系人。

    • 公用文件夹>公用文件夹:已启用邮件的公用文件夹。

  2. 选择要从地址列表中隐藏的收件人。

  3. 打开收件人属性窗口。 接下来执行的操作取决于收件人类型:

    • 邮箱:在“ 帐户 ”选项卡上,选择“ 管理联系人信息”。 然后选择“ 从全局地址列表中隐藏”。

    • :在“设置”选项卡上,选择“从全局地址列表中隐藏此组”。

    • 资源:单击铅笔并选择“ 从地址列表中隐藏” (GAL)

    • 联系人从全局地址列表中选择“隐藏此项”。

    • 公用文件夹:在 常规邮件属性 选项卡上, 选择Exchange 地址列表中隐藏

  4. 完成后,单击“保存”。

使用 Exchange Online PowerShell 从地址列表中隐藏收件人

若要从地址列表中隐藏收件人,请使用以下语法:

Set-<RecipientType> -Identity <RecipientIdentity> -HiddenFromAddressListsEnabled $true

<RecipientType> 是以下值之一:

  • DistributionGroup

  • DynamicDistributionGroup

  • Mailbox

  • MailContact

  • MailPublicFolder

  • MailUser

  • UnifiedGroup

此示例从地址列表中隐藏名为“内部事务”的通讯组。

Set-DistributionGroup -Identity "Internal Affairs" -HiddenFromAddressListsEnabled $true

本示例从地址列表中隐藏邮箱 michelle@contoso.com 。

Set-Mailbox -Identity michelle@contoso.com -HiddenFromAddressListsEnabled $true

注意:若要使收件人再次在地址列表中可见,请使用 HiddenFromAddressListsEnabled 参数的值$false

如何知道操作成功?

可以使用以下任一过程验证是否已成功隐藏地址列表中的收件人:

  • 在 EAC 中,选择收件人,单击 “编辑 (编辑”图标。) 并验证是否已选中“隐藏地址列表”设置。

  • 在 Exchange Online PowerShell 中,运行以下命令并验证是否已列出收件人:

    Get-Recipient -ResultSize unlimited -Filter 'HiddenFromAddressListsEnabled -eq $true'
    
  • 在 Outlook 中打开 GAL 或 Outlook 网页版 (以前称为 Outlook Web App) ,并验证收件人不可见。