地址列表是 Exchange Online 中启用邮件的收件人对象的集合。 地址列表基于收件人筛选器。 有关地址列表的详细信息,请参阅 Exchange Online 中的地址列表。
有关与管理地址列表相关的其他管理任务,请参阅 Exchange Online 中的地址列表过程。
正在查找本文的Exchange Server版本? 请参阅 创建地址列表。
开始前,有必要了解什么?
估计完成每个步骤的时间:5 分钟。
默认情况下,在 Exchange Online 中,地址列表角色不会分配给任何角色组。 若要使用需要地址列表角色的任意 cmdlet,您需要向角色组添加此角色。 有关详细信息,请参阅 修改角色组。
只能使用 Exchange Online PowerShell 执行本文中的几乎所有过程, (除将收件人从地址列表中隐藏) 之外的所有过程。 若要连接到 Exchange Online PowerShell,请参阅连接到 Exchange Online PowerShell。
提示
是否有任何疑问? 在 Exchange Online 的Exchange Online论坛中寻求帮助。
使用 Exchange Online PowerShell 创建地址列表
可创建带或不带收件人筛选器的地址列表。 有关收件人筛选器的详细信息,请参阅 Exchange Online PowerShell 中地址列表的收件人筛选器。
若要创建地址列表,请使用以下语法:
New-AddressList -Name "<Address List Name>" [-Container <ExistingAddressListPath>] [<Precanned recipient filter | Custom recipient filter>] [-RecipientContainer <OrganizationalUnit>]
此示例创建一个地址列表,其中包含一个预设的收件人筛选器:
- 名称:东南办事处
-
位置:在根 (
\下,也称为“所有地址列表”) ,因为我们未使用 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 设置为 Washington 或 Oregon的收件人。
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 属性值的所有人。 若要更新地址列表,请按照以下步骤操作:
使用地址列表中的查询来查找应在地址列表中显示的所有用户。 例如:
$Before = Get-User -Filter "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'Oregon') -or (StateOrProvince -eq 'Washington')))" -ResultSize Unlimited将所需的属性更改为临时值。 例如,将 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}通过使用临时属性值再次找到那些相同的用户。 例如:
$After = Get-User -Filter "((RecipientType -eq 'UserMailbox') -and ((StateOrProvince -eq 'OR') -or (StateOrProvince -eq 'WA')))" -ResultSize Unlimited将临时值更改回所需的值。 例如,将 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-User 和 Set-User cmdlet。 CustomAttribute1 至 CustomAttribute15 属性需要 Get-Mailbox 和 Set-Mailbox cmdlet。 有关哪些属性可用于哪些 cmdlet 的详细信息,请参阅以下文章:
如果地址列表中未显示少量用户,则可以修改每个用户所需的属性值。 例如:
- 为该用户设置一个临时的属性值:
Set-User -Identity <UserIdentity> -StateOrProvince WA - 将临时值更改回所需的值:
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> 替换为<地址列表\n路径,并在 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(实际上,他们是所有地址列表中的收件人筛选器的例外)中都会隐藏。 如果要将收件人包括在某些地址列表中,而不包含在其他地址列表中,你需要调整地址列表中的收件人筛选器,以包括或排除该收件人。
从地址列表中隐藏收件人也可能阻止通过通讯簿搜索找到用户。 例如, 自动助理服务语音识别 无法找到呼叫并将其重定向到收件人。
使用 EAC 从地址列表中隐藏收件人
有关 EAC 的详细信息,请参阅 Exchange Online 中的 Exchange 管理中心。
在 的 EAC 中 https://admin.exchange.microsoft.com,根据收件人类型转到以下位置之一:
- 收件人>邮箱:用户邮箱。
-
收件人>组:以下选项卡之一:
- Microsoft 365 (Microsoft 365 组)
- 通讯组 列表 (通讯组)
- 动态通讯组列表 (动态通讯组)
- 启用邮件的安全 (启用邮件的安全组)
- 收件人>资源:会议室和设备邮箱。
- 收件人>联系人:邮件用户和邮件联系人。
- 公用文件夹>“公用文件夹 ”选项卡:已启用邮件的公用文件夹。
选择要从地址列表中隐藏的收件人。
在打开的收件人详细信息浮出控件中,接下来执行的作取决于收件人类型:
- 用户邮箱:在“常规”选项卡上,在“从全局地址列表中隐藏 (GAL) ”部分选择“管理从 GAL 隐藏”。 在打开的 “从地址列表隐藏” 浮出控件中,将开关滑动到 “打开”,然后选择“ 保存”。
- 组:在 “设置” 选项卡上,选择“ 从全局地址列表中隐藏此组”。
- 资源邮箱:在“常规”选项卡上,在“从全局地址列表中隐藏 (GAL) ”部分选择“管理从 GAL 隐藏”。 在打开 的“管理全局地址隐藏列表 (GAL) 浮出控件”中,将开关滑动到 “开”,然后选择“ 保存”。
- 邮件联系人和邮件用户:在“常规”选项卡上,在“从全局地址列表中隐藏 (GAL) ”部分选择“管理从 GAL 隐藏”。 在打开 的“管理全局地址隐藏列表 (GAL) 浮出控件”中,将开关滑动到 “开”,然后选择“ 保存”。
- 已启用邮件的公用文件夹:在“ 邮件属性 ”选项卡上,选择“ 从 Exchange 地址列表中隐藏”。
完成后,选择“保存”。
使用 Exchange Online PowerShell 从地址列表中隐藏收件人
若要从地址列表中隐藏收件人,请使用以下语法:
Set-<RecipientType> -Identity <RecipientIdentity> -HiddenFromAddressListsEnabled $true
<RecipientType> 是以下值之一:
DistributionGroupDynamicDistributionGroupMailboxMailContactMailPublicFolderMailUserUnifiedGroup
此示例从地址列表中隐藏名为“内部事务”的通讯组。
Set-DistributionGroup -Identity "Internal Affairs" -HiddenFromAddressListsEnabled $true
本示例从地址列表中隐藏邮箱 michelle@contoso.com 。
Set-Mailbox -Identity michelle@contoso.com -HiddenFromAddressListsEnabled $true
提示
若要使收件人再次在地址列表中可见,请使用 HiddenFromAddressListsEnabled 参数的值$false。
如何知道你已成功从地址列表中隐藏收件人?
若要验证是否已从地址列表中成功隐藏收件人,请使用以下任何过程:
在 EAC 中,选择收件人并验证详细信息浮出控件中的“隐藏”设置。
在 Exchange Online PowerShell 中,执行以下步骤之一:
单个收件人:将 Identity> 替换为<收件人的姓名、别名或电子邮件地址,然后运行以下命令:
Get-Recipient -Identity "<Identity>" | Format-List Name,HiddenFromAddressListsEnabled所有收件人:运行以下命令并验证是否已列出收件人:
Get-Recipient -ResultSize unlimited -Filter 'HiddenFromAddressListsEnabled -eq $true'
在 Outlook 中打开 GAL 或 Outlook 网页版 (以前称为 Outlook Web App) ,并验证收件人不可见。