管理 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 Online 或 Exchange 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 设置为 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> 替换为<地址列表\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 个组。
在新 EAC 中,根据收件人类型转到以下位置之一:
收件人>邮箱:用户邮箱。
收件人>组:通讯组、启用邮件的安全组和动态通讯组。
收件人>资源:会议室和设备邮箱。
收件人>联系人:邮件用户和邮件联系人。
公用文件夹>公用文件夹:已启用邮件的公用文件夹。
选择要从地址列表中隐藏的收件人。
打开收件人属性窗口。 接下来执行的操作取决于收件人类型:
邮箱:在“ 帐户 ”选项卡上,选择“ 管理联系人信息”。 然后选择“ 从全局地址列表中隐藏”。
组:在“设置”选项卡上,选择“从全局地址列表中隐藏此组”。
资源:单击铅笔并选择“ 从地址列表中隐藏” (GAL) 。
联系人: 从全局地址列表中选择“隐藏此项”。
公用文件夹:在 常规邮件属性 选项卡上, 选择Exchange 地址列表中隐藏。
完成后,单击“保存”。
使用 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) ,并验证收件人不可见。