当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

作者:精品下载站 日期:2024-12-14 09:05:58 浏览:15 分类:玩电脑

使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13


本文的重点是 - 使用 PowerShell cmdlet Set-Mailbox“添加”电子邮件地址的管理任务。我们将审查的主题是:

  1. 添加新电子邮件地址的两种方法 - 替换现有电子邮件地址与添加新电子邮件地址。
  2. 电子邮件地址和其他地址的不同类型。
  3. 主电子邮件地址和代理电子邮件地址的主题。

当前的文章系列

当前的文章系列包括 13 篇文章。

如果您挠头并想 - “为什么我需要阅读这么多关于使用 PowerShell 管理电子邮件地址的无聊信息”?

或其他教导,例如 - “我需要一个快速且快速的答案来满足我的需求! ”

我的回答如下:

回答 1 - 很多时候,我收到客户的请求,涉及使用 PowerShell 管理电子邮件地址的各种任务,但我发现关于此主题的信息并不多。特别是关于 Office 365 和 Exchange Online 工作环境。

答案 2 - 您不必阅读所有文章。每篇文章都涉及管理电子邮件地址的不同方面,例如 - 查看和导出有关电子邮件地址的信息、添加电子邮件地址、删除电子邮件地址、搜索电子邮件地址等。

在当前文章系列中每篇文章的开头,您都可以找到一个“目录”,它将帮助您导航到与您最相关的特定主题。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

答案 3 - 对于我们这些喜欢开门见山的人,您可以使用当前文章系列中的第一篇文章。第一篇文章的主要目的是快速查看 PowerShell 语法示例,其中包含太多关于“幕后发生的事情”的详细信息或冗长的解释。

答案 4 - 在每篇文章的底部,我添加了一个指向“基于菜单的 PowerShell 脚本”的链接,这将简化执行各种管理任务的任务,例如 - 导出有关现有电子邮件地址的信息、搜索特定的电子邮件邮件地址、向现有 Exchange Online 收件人添加其他别名等。

管理电子邮件地址 |云环境与 Exchange 混合或目录同步环境

当前文章系列中的信息仅适用于 Office 365 环境是“纯云”或“云原生”环境的场景。

如果您的环境被视为 Exchange 混合环境或目录同步环境,则需要对从本地 Active Directory 同步到“云”(Azure Active Directory 和 Exchange Online)的收件人进行“寻址”过程。通过使用您的本地基础设施来实施。

在不使用本地 Exchange 的目录同步环境中,需要通过本地 Active Directory 用户和计算机工具(或使用 PowerShell)实现电子邮件地址管理。

在 Exchange 混合环境中,电子邮件地址管理需要通过 Exchange 本地管理界面或 Exchange 本地 PowerShell 控制台来实施。

您可以在文章底部阅读有关此主题的更多信息。

Exchange Online 收件人和 PowerShell 命令设置邮箱

术语“Exchange Online 收件人”是一个广泛的术语,包括多种类型的收件人,例如“邮箱收件人”、“组收件人”、“联系人收件人”等。

文章中 - 各种类型的 Exchange Online 收件人简介 | PowerShell cmdlet |办公室 365 |第 8#13 部分,我们更详细地回顾了每种类型的“Exchange Online 收件人”以及它们之间的区别。

大多数时候,添加或删除电子邮件地址的管理任务是通过“寻址”“Exchange Online 邮箱收件人”来实现的。

从技术上来说,“邮箱收件人”有四种分类——用户邮箱、共享邮箱、房间邮箱和设备邮箱。

大多数时候,与“添加新电子邮件地址”相关的管理任务是针对“用户邮箱收件人”实施的。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

我们用于管理 Exchange Online“邮箱收件人”的 PowerShell 命令是:

PowerShell cmdlet Set-Mailbox,用于执行以下任务:

  • 添加电子邮件地址。
  • 删除(或替换)电子邮件地址。

PowerShell cmdlet Get-Mailbox,用于执行以下任务:

  • 查看和导出有关电子邮件地址的信息。
  • 搜索特定的电子邮件地址。

添加电子邮件地址的挑战

在 Office 365 (Exchange Online) 中实现向“收件人”添加电子邮件地址的任务可能会被认为是令人困惑的,主要原因有两个:

  1. 使用 Set-Mailbox cmdlet 添加新电子邮件地址的两种方法(添加电子邮件地址与替换现有电子邮件地址)。
  2. 主电子邮件地址与代理电子邮件地址的不同“行为”。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

替换现有电子邮件地址与添加其他电子邮件地址

在 Exchange Online 环境中,添加(或删除)电子邮件地址的任务是通过使用 PowerShell cmdlet Set-Mailbox 来实现的。

关于添加电子邮件地址的任务,PowerShell cmdlet Set-Mailbox 为我们提供了两种不同的方法:

  • 方法 1#2 - 用“其他”电子邮件地址替换(删除)现有电子邮件地址。
  • 方法 2#2 - 将新电子邮件地址添加到现有电子邮件地址“集”中。

这两种方法之间的区别不是那么明显,并且很容易导致这样的情况:在添加新电子邮件地址(NEW E)的过程中,我们错误地删除(删除)了现有电子邮件地址- 邮件地址替换现有的电子邮件地址)。

方法 1 - 用我们提供的新电子邮件地址替换(移除、删除)现有电子邮件地址。

当我们使用Set-Mailbox PowerShell命令的默认语法+寻址属性EmailAddress时,结果可以“转换”为以下选项之一:

  1. 通过实施新电子邮件地址替换现有收件人电子邮件地址的过程来移除(删除)现有电子邮件地址。
  2. 将 Exchange Online 收件人的新电子邮件地址添加到现有电子邮件地址“数组”中。

在基于Office 365(Exchange Online)的环境中,“删除现有
电子邮件地址”的现象更为广泛。

在 Office 365 环境中,使用默认的 Set-Mailbox PowerShell 命令语法的方法将“删除现有的别名电子邮件地址”,+ 导致意外结果,例如 - 删除原来的 onMicrosoft电子邮件地址、x500 地址和 SIP 地址的删除。

我们将在“可用于设置 Exchange Online 邮箱主电子邮件地址的三种方法”部分中更详细地讨论该主题。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

方法 2 - 将其他电子邮件地址添加到现有电子邮件地址“集合”中。

添加新电子邮件地址的第二种方法不太“激进”,因为在这种方法中,新电子邮件地址将添加到现有电子邮件地址“数组”中,而不是或删除或删除现有的电子邮件地址。

在此方法中,我们使用 PowerShell 参数 @{add,并提供一个或多个将添加到 Exchange 收件人的电子邮件地址。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

主要电子邮件地址与别名(代理)电子邮件地址

在本节中,我们将回顾主电子邮件地址与附加电子邮件地址(描述为代理电子邮件地址或别名电子邮件地址)的主题。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

简单提醒一下,主电子邮件地址是当收件人向其他收件人发送电子邮件地址时“代表”收件人的电子邮件地址。这是“另一个收件人”将看到的电子邮件地址。

代理电子邮件地址是附加电子邮件地址,可以“附加”到收件人。
代理电子邮件地址主要用于“传入邮件”。

其他收件人可以向“代理电子邮件地址”发送电子邮件,而“拥有”别名电子邮件地址的收件人会收到该电子邮件,因为他是“特定代理电子邮件地址的所有者” 。

  • 每个收件人只能有一个“主电子邮件地址”。
  • 每个收件人可以有零个、一个或多个别名电子邮件地址。

主要电子邮件地址与代理电子邮件地址比较表。

Primary E-mail address

代理(别名)电子邮件地址

Only one

零个或无限个(无、一个或多个)。

Defended using SMTP: prefix, and by using capital letters

使用 SMTP: 前缀和小型大写字母进行防护

Has a “dedicated” PowerShell property

没有“专用”PowerShell 属性。代理电子邮件地址“存储”在收件人的属性 EmailAddresses 中,连同所有其余收件人地址,例如 - SIP 地址、x500 地址,并包括主电子邮件地址。

This E-mail address “represents” the recipient when he sends E-mails to another recipient and considers as the “reply address.”

Exchange 收件人无法使用其“附加电子邮件地址”别名发送电子邮件地址,但可以“接受”发送到其别名电子邮件地址的电子邮件。

添加电子邮件地址 |主要电子邮件地址与代理电子邮件地址

“事情”是,在基于 Office 365 的环境中,PowerShell 确保添加新电子邮件地址的任务有点令人困惑。

当我们向 Exchange 邮箱添加新电子邮件地址时,我们需要将该电子邮件地址定义为主电子邮件地址或代理电子邮件地址。

在 Exchange 本地环境中,PowerShell cmdlet Set-Mailbox 包含名为 PrimarySmtpAddress 的“专用”参数,用于设置“主电子邮件地址” ”。

在 Exchange Online 环境中,PowerShell cmdlet Set-Mailbox 不支持此用于设置主电子邮件地址的“特殊”参数。

我们需要使用其他方法来设置 Exchange Online 收件人的主电子邮件地址,例如设置名为 WindowsEmailAddress 的属性值

在本文后面,我们将回顾在基于 Exchange Online 的环境中设置主电子邮件地址的其他方法。

“邮箱电子邮件地址的信息存储在哪里

  • 每个 Office 365 用户可以拥有一个或多个电子邮件地址。
  • 电子邮件地址可以是SMTP电子邮件地址或其他类型的电子邮件地址,例如x500电子邮件地址。
  • 每个 Office 365 用户都可以拥有“其他类型的地址”,例如用于 Skype for Business 基础设施的 SIP 地址。
  • 在 Office 365 环境中,用户 UPN(用户主体名称)定义默认 Exchange Online 收件人 SMTP 电子邮件地址。

在 Exchange Online 基础结构中,有关 Exchange 收件人地址的信息保存在几个属性字段中。

Exchange Online 收件人 |有关信息 - 主要电子邮件地址

Exchange Online 收件人主电子邮件地址保存在名为 PrimarySmtpAddress 的专用属性字段中,此外还保存在名为 WindowsEmailAddress 的属性字段中。

我们不会详细回顾这两个属性字段之间的差异。

我想提的主要一点是,在我们想要使用 Set-Mailbox PowerShell 替换现有主电子邮件地址(设置新的主电子邮件地址)的情况下命令:

  1. 尽管 Exchange Online 邮箱收件人具有“主电子邮件地址”属性,但在使用 Set-Mailbox 命令时,我们无法“直接”寻址名为 PrimarySmtpAddress 的 Exchange Online 邮箱属性。换句话说,我们无法“设置”PrimarySmtpAddress 属性。
  2. 为了能够“管理”Exchange 邮箱收件人的主电子邮件地址,我们可以对名为 WindowsEmailAdres 的 Exchange Online 邮箱属性进行寻址。

Exchange Online 收件人 |电子邮件地址属性 | Exchange Online 收件人“地址”的主要“存储”

Exchange Online 收件人的所有电子邮件地址都存储在
名为EmailAddresses 的属性字段中。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

名为 EmailAddresses 的属性(属性)充当“逻辑容器”,“保存”所有各种用户电子邮件地址,例如 - 主 SMTP 电子邮件地址(尽管主电子邮件地址地址有专用属性字段)、别名 SMTP 电子邮件地址、x500 电子邮件地址和 SIP 地址。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

在以下示例中,我们使用 PowerShell 命令来显示有关提到的各种属性字段的信息:

Get-Mailbox Billy | FL PrimarySmtpAddress,EmailAddresses,WindowsEmailAddress
  • 我们可以看到WindowsEmailAddress 属性字段的内容与PrimarySmtpAddress 属性字段相同
  • 我们可以看到 EmailAddresses 属性字段包括各种类型的电子邮件地址,例如 - SMTP 电子邮件地址、x500 电子邮件地址和 SIP 地址。

PowerShell 控制台输出示例

PS C:\script> Get-Mailbox Billy | FL PrimarySmtpAddress,EmailAddresses,WindowsEmailAddress

PrimarySmtpAddress : Billy@o365info.com

EmailAddresses : {smtp:Billy@o365info2.mail.onmicrosoft.com, X500:/o=First Organization/ou=External (FYDIBOHF25SPDLT)/cn=Recipients/cn=Billya76, SIP:Billy@o365info.com, SMTP:Billy@o365info.com...}
WindowsEmailAddress : Billy@o365info.com

我们用于描述非主电子邮件地址的不同术语

在当前的文章系列中,我们将使用几个术语来描述非主电子邮件地址。

对我来说,重要的是要强调以下所有术语都是“相同的”:

  • 第二个邮箱地址。
  • 别名电子邮件地址。
  • 代理电子邮件地址。
  • 附加电子邮件地址。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

可用于设置 Exchange Online 邮箱主电子邮件地址的三种方法

尽管在 Exchange Online 中我们没有专用的 PowerShell 参数来管理主电子邮件地址,但我们可以使用三种方法来设置新的主电子邮件地址。

如果我们想使用更准确的术语,我们应该使用术语“替换”主电子邮件地址,因为每个 Exchange 收件人只能有一个主电子邮件地址地址。

当我们设置新的主电子邮件地址时,新的主电子邮件地址必须替换(删除)之前的主电子邮件地址。

换句话说,我们可以说新的主电子邮件地址继承了先前主电子邮件地址的位置。

方法 1#3 - 添加(替换)主电子邮件地址 |使用默认命令

在此方法中,我们需要做的就是使用 PowerShell 命令 Set-Mailbox 的默认参数,语法如下:

PowerShell命令语法:

Set-Mailbox <Identity> -EmailAddress <Email Address>

PowerShell 命令示例:

Set-Mailbox Bob -EmailAddress BobNewEmail@o365info.com

即使我们没有提到我们提供的电子邮件地址(在我们的场景中BobNewEmail@o365info.com)应该是新的主要电子邮件地址 -邮件地址,PowerShell“解释”语法,就好像我们要求他将指定的电子邮件地址设置为“新的主电子邮件地址”。

稍后,我们将讨论更详细地了解先前的主要电子邮件地址和地址的其余部分将会发生什么情况。

方法 2#3 - 添加(替换)主电子邮件地址 |设置属性 - WindowsEmailAddress

在此方法中,我们处理名为 WindowsEmailAddress 的其他 Exchange Online 邮箱属性。

Exchange Online 邮箱属性WindowsEmailAddress 包含收件人的主电子邮件地址。

如果我们设置 WindowsEmailAddress 属性中存储的电子邮件地址的值,则 Exchange Online 收件人主电子邮件地址也会更新。

PowerShell 命令语法

Set-Mailbox <Identity> -WindowsEmailAddress <Email Address>

PowerShell 命令示例

Set-Mailbox Bob -WindowsEmailAddress BobNewEmail@o365info.com

方法 3#3 - 添加(替换)主电子邮件地址 |使用 SMTP 前缀

在此方法中,我们将特定电子邮件“标记”为“主电子邮件地址”。
我们用于“告诉”PowerShell 我们要将特定电子邮件地址定义为“主电子邮件地址”的方式“主要电子邮件地址”是通过使用大写字母的“SMTP:”前缀。

该语法是通过在电子邮件地址之前使用 SMTP 前缀来实现的。

例如SMTP:电子邮件地址

PowerShell 命令示例,语法:

PowerShell 命令语法

Set-Mailbox <Identity> -EmailAddress SMTP:<primary E-mail address>

PowerShell 命令示例

Set-Mailbox Bob -EmailAddress SMTP:Bob-NEW01@o365info.com

使用 @{add PowerShell 参数添加主电子邮件地址

理论上,我们可以假设我们可以使用 PowerShell 方法 @{add 来添加主电子邮件地址。

事实上,这个选项不可用。

在以下示例中,我们尝试使用 PowerShell 参数 @{add 将主电子邮件地址添加到名为 Christina 的收件人,方法是使用带有大写字母的 SMTP 前缀:

Set-Mailbox -Identity Christina -EmailAddresses @{add="SMTP:" + "New-Email@o365info.com"}

结果出现以下错误:

xxx 
Set-Mailbox -Identity Christina -EmailAddresses @{add="SMTP:" + "New-Email@O365INFO.COM"}

There are multiple primary SMTP addresses. Please ensure there is only one primary address for each address type.

+ CategoryInfo : NotSpecified: (Christina:ADObjectId) [Set-Mailbox], DataValidationException

如果我们尝试使用添加和删除值的方法(@{add@{remove),通过尝试删除现有的主电子邮件地址,因此稍后我们将能够添加新的主电子邮件地址,例如以下 PowerShell 命令:

Set-Mailbox Christina -EmailAddresses @{Remove="Christina@o365info.com"}

出现以下错误消息:

PS C:\script> Set-Mailbox Christina -EmailAddresses @{Remove="Christina@o365info.com"}

There is no primary SMTP address.

+ CategoryInfo : NotSpecified: (Christina:ADObjectId) [Set-Mailbox], DataValidationException

可用于设置 Exchange Online 邮箱别名电子邮件地址的两种方法

如前所述,“SMTP 电子邮件地址”有两种类型 - 主电子邮件地址和辅助(别名或代理)电子邮件地址。

在本节中,我们将回顾可用于向 Exchange Online 收件人添加别名(代理)电子邮件地址的方法。

我们可以使用两种方法来添加代理电子邮件地址。

方法1 - 使用@{add方法设置电子邮件地址

在此选项中,我们使用 PowerShell“方法”从可包含多个值的“对象属性字段”中添加删除“值”。

在我们的特定场景中,我们要添加(或删除)的“值”是收件人电子邮件地址。

“包含”多个值(一个或多个收件人电子邮件地址)的 Exchange Online 邮箱属性是名为 EmailAddresses 的 Exchange Online 邮箱属性字段。

为了能够添加值或从电子邮件地址“数组”中删除(删除),我们使用 PowerShell 语法:

  • @{add“值” - 用于添加附加值
  • @{remove“值” - 用于删除(删除)现有值

这是推荐的方法,因为使用此 PowerShell 语法(@{add 选项)时,“新值”(在我们的例子中为电子邮件地址)不会替换或删除现有的电子邮件地址。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

方法 2 - 不使用使用@{add method | 设置电子邮件地址两个电子邮件地址

不太推荐这种方法,但我们熟悉这个选项很重要。

在下图中,我们可以看到一个 PowerShell 命令的示例,其中我们使用 EmailAddresses 参数,并提供三个电子邮件地址。

在这种情况下,PowerShell 将把“第一个”电子邮件地址(数字 1)作为主电子邮件地址,并将其余电子邮件地址(数字 2 和数字 3)作为代理电子邮件地址。邮件地址。

该方法的“问题”是,PowerShell 将删除(删除)现有的电子邮件地址,并“放置”我们提供的新电子邮件地址,作为以前的电子邮件地址的替换(删除现有的电子邮件地址) - 邮件地址)。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

使用新电子邮件地址替换现有电子邮件地址

在下面的部分中,我们回顾如何实现一个场景,其中他的主角是替换(删除)现有的电子邮件地址并提供一个新的电子邮件地址。

请注意,在这种情况下,我们使用的 PowerShell 命令将删除(删除)收件人拥有的任何现有电子邮件地址,除了将另存为别名电子邮件的现有主电子邮件地址之外。邮件地址。

为了替换现有的电子邮件地址,我们使用PowerShell Set-Mailbox,而不是使用“@{add”或“@{remove”的方法”。

关于 PowerShell 如何理解有关电子邮件地址的信息的一些知识

当我们使用带有“EmailAddresses”参数的Set-Mailbox命令时,
Set-Mailbox命令基于以下内容默认值:

如果我们仅提供一个电子邮件地址,我们提供的电子邮件地址将被视为主要电子邮件地址并将取代当前的主要电子邮件地址。

现有的主电子邮件地址不会被删除,而是会被配置
为别名电子邮件地址。

注意 - 所有其余的收件人电子邮件地址都将被删除!

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

如果我们提供两个或多个电子邮件地址,我们提供的“第一个电子邮件地址”将被视为主要电子邮件地址,并将取代当前的主要电子邮件地址。

电子邮件地址的“其余”将被配置为别名(代理)电子邮件地址。

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

现有代理电子邮件地址会发生什么情况?

很多时候,我们“寻址”的收件人已经拥有现有的别名电子邮件地址或其他地址,例如 SIP 地址。

如果我们提供两个电子邮件地址,第一个电子邮件地址将“替换”当前
主电子邮件地址。

我们通过 PowerShell 命令提供的代理电子邮件地址将被添加到收件人。

请注意,使用此方法时,任何现有的代理电子邮件地址都将被删除(删除)!

[玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

不使用使用 @{add 方法 | 设置电子邮件地址的结果三种可选场景

为了能够更好地理解使用带有 EmailAddresses 参数的 PowerShell Set-Mailbox 命令的结果,但不使用 @{add 方法 让我们使用几个演示。

场景人物:

在下一节中,我们将演示几个“设置电子邮件地址”方案,这些方案将在名为 -Angelina 的 Exchange Online 收件人上实现

Angelina 有以下电子邮件地址:

  • 主要电子邮件地址 - Angelina@o365info.com
  • 别名电子邮件地址 - Angelina 有两个别名电子邮件地址

    • Microsoft 上的默认 Office 365 电子邮件地址 - Angelina@o365info2.onmicrosoft.com
  • 其他电子邮件地址 - Angelina-Alias01@o365info.com
  • SIP 地址 - Angelina@o365info.com
  • [玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

    场景 1 - 使用 @{add 方法 | 设置电子邮件地址一个电子邮件地址

    场景描述

    我们想要“替换”Exchange Online 收件人的主电子邮件地址。

    在此方案中,我们使用带有 EmailAddresses 参数的 Set-Mailbox 命令,并仅提供一个电子邮件地址。

    在我们的示例中,单个电子邮件地址是:Angelina-NEW01@o365info.com

    PowerShell 命令:

    Set-Mailbox Angelina -EmailAddress Angelina-NEW01@o365info.com

    结果如下:

    • 新电子邮件地址 (Angelina-NEW01@o365info.com) 将替换当前的主电子邮件地址。
    • “旧”主电子邮件地址,另存为别名电子邮件地址(附加电子邮件地址,但不是
      主电子邮件地址)。
    • 所有“其他电子邮件地址” - 别名电子邮件地址、OnMicrosoft 电子邮件地址和 SIP 地址均删除(已删除) !
    PS C:\script> Get-Mailbox Angelina | Fl Alias,PrimarySmtpAddress,EmailAddresses
    
    Alias : Angelina
    
    PrimarySmtpAddress : Angelina-NEW01@o365info.com
    
    EmailAddresses : {smtp:Angelina@o365info.com, SMTP:Angelina-NEW01@o365info.com}

    场景 2 - 使用@{add 方法|设置电子邮件地址两个(或更多)电子邮件地址

    场景描述

    我们想要“替换”Exchange Online 收件人的主电子邮件地址 + 添加新的别名电子邮件地址。

    在此方案中,我们使用带有 EmailAddresses 参数的 Set-Mailbox 命令并提供两个电子邮件地址。

    在我们的示例中,电子邮件地址是:

    • Angelina-NEW01@o365info.com
    • 安吉丽娜-Alias02@o365info.com
    Set-Mailbox Angelina -EmailAddress Angelina-NEW01@o365info.com,Angelina-AliasTest02@o365info.com

    结果如下:

    PowerShell 命令Set-Mailbox 认为第一个电子邮件地址是主电子邮件地址,所有其余电子邮件地址应配置为“辅助”(别名)E - 邮件地址。

    • 新电子邮件地址 (Angelina-NEW01@o365info.com) 将替换当前的主电子邮件地址。
    • “旧”主电子邮件地址另存为别名电子邮件地址(附加电子邮件地址,但
      不是主电子邮件地址)。
    • 我们在命令中使用的“第二个电子邮件地址”(Angelina-Alias02@o365info.com) 已添加为附加别名电子邮件地址。
    • 所有“其他电子邮件地址” - 别名电子邮件地址、OnMicrosoft 电子邮件地址和 SIP 地址均删除(已删除) !
    PS C:\> Get-Mailbox Angelina | Fl Alias,PrimarySmtpAddress,EmailAddresses
    
    Alias : Angelina
    
    PrimarySmtpAddress : Angelina-NEW01@o365info.com
    
    EmailAddresses : {smtp:Angelina@o365info.com, smtp: Angelina-Alias01@o365info.com, SMTP:Angelina-NEW01@o365info.com}

    场景 3 - 电子邮件地址使用@{add 方法|两个电子邮件地址 + 定义使用哪个电子邮件地址作为主电子邮件地址

    在此方案中,我们使用带有 EmailAddresses 参数的 Set-Mailbox 命令并提供三个电子邮件地址。

    在我们的示例中,电子邮件地址是:

    • Angelina-NEW01@o365info.com(应配置为主电子邮件地址)。
    • Angelina-Alias02@o365info.com
    • Angelina-Alias03@o365info.com

    主要的区别是,这一次;我们不想让PowerShell自己决定哪个电子邮件地址将被保护为“主要电子邮件地址”。

    相反,我们想要“指示”PowerShell 使用哪个电子邮件地址作为主电子邮件地址。

    为了能够实现此场景,我们使用前缀SMTP(大写字母)。
    当我们使用 SMTP 前缀时,PowerShell“理解”应配置以下电子邮件地址作为主要电子邮件地址。

    我们使用的 PowerShell 命令语法是:

    Set-Mailbox Angelina -EmailAddress Angelina-Alias02@o365info.com,Angelina-Alias03@o365info.com,SMTP:Angelina-NEW01@o365info.com

    请注意,我们要设置为主电子邮件地址的电子邮件地址不是第一个
    电子邮件地址。

    结果如下:

    • 新电子邮件地址 (Angelina-NEW01@o365info.com) 将替换当前的主电子邮件地址。
    • “旧”主电子邮件地址另存为别名电子邮件地址(附加电子邮件地址,但不是主电子邮件地址)。
    • 我们在命令中使用的“第二个电子邮件地址”和第三个电子邮件地址(Angelina-Alias02@o365info.com 和 Angelina-Alias03@o365info.com)已作为附加项添加别名电子邮件地址。
    • 所有“其他电子邮件地址” - 别名电子邮件地址、OnMicrosoft 电子邮件地址和 SIP 地址均删除(已删除) !
    PS C:\script> Get-Mailbox Angelina | Fl Alias,PrimarySmtpAddress,EmailAddresses
    
    Alias : Angelina
    
    PrimarySmtpAddress : Angelina-NEW01@o365info.com
    
    EmailAddresses : {smtp:Angelina@o365info.com, SMTP:Angelina-NEW01@o365info.com, smtp:Angelina-Alias03@o365info.com, smtp:Angelina-Alias02@o365info.com}

    如何从意外删除 SIP 地址的情况中恢复?

    如果您不知道使用带有“EmailAddresses”参数的 Set-Mailbox 命令可能产生的后果,以及您在 SIP 场景中的经历地址已删除,您可以使用以下 PowerShell 命令语法再次添加 SIP 地址。

    PowerShell命令语法:

    Set-Mailbox <identity> -EmailAddresses SIP:<SIP Address>

    PowerShell 命令示例:

    Set-Mailbox Angelina -EmailAddresses SIP:Angelina@o365info.com

    注意 - 我不知道如何通过 Exchange Online 管理基于 Web 的界面添加 SIP 地址。

    使用“@{add”方法添加额外的电子邮件地址

    正如上一节中提到的,我们用于添加附加电子邮件地址的“正式方法”是通过使用 PowerShell 命令 Set-Mailbox 使用 @{add 的方法来实现的语法。

    使用@{add PowerShell 方法时,我们指定的电子邮件地址将作为附加电子邮件地址添加到现有的“电子邮件地址数组”中。

    向收件人添加其他别名(代理)电子邮件地址

    要向收件人添加附加电子邮件地址而不“影响”现有电子邮件地址,我们可以使用以下语法。

    PowerShell命令语法:

    Set-Mailbox <identity> -EmailAddresses @{add="<E-mail address>"}

    PowerShell 命令示例:

    Set-Mailbox Angelina -EmailAddresses @{add="Angelina-Alias11@o365info.com"}

    如果我们需要添加多个电子邮件地址,我们可以用逗号分隔每个电子邮件地址。

    例如:

    Set-Mailbox Angelina -EmailAddresses @{add="Angelina-Alias11@o365info.com","Angelina-Alias12@o365info.com"}

    一般提示 - @{add PowerShell 命令可以替换为“+”快捷方式:

    PowerShell命令语法:

    Set-Mailbox <identity> -EmailAddresses @{“+”="<E-mail address>"}

    PowerShell 命令示例:

    Set-Mailbox Angelina -EmailAddresses @{“+”=" Angelina-Alias11@o365info.com"}

    在目录同步环境中更新 Exchange Online 邮箱属性

    在当前的文章系列中,我们回顾了许多业务场景,这些场景与基于 Office 365 和 Exchange Online 的环境中的电子邮件地址管理主题相关。

    我想强调的重要一点是,如果您的基础架构是基于目录同步环境或Exchange混合环境我们不能 使用“Exchange Online PowerShell”来实现“云对象”(例如 Office 365 用户帐户或 Exchange Online 邮箱)的配置更新。

    对于这个“限制”,我们不会提供详细的答案,只是简单说明一下,在 Directory 同步环境中,On-Premise Active Directory 是“权限来源”。

    尽管在实践中,当 Office 365 拥有 Exchange Online 邮箱的许可证时,Office 365 用户帐户的“所有权”“属于”本地 Active Directory。
    从本地同步的 Office 365 用户帐户Active Directory 被视为“只读对象”。

    因此,在目录同步中,我们无法“直接访问”云对象(例如 Exchange Online 邮箱)并尝试添加或更新某些属性(例如本例中的电子邮件地址)。
    在目录同步环境中,对同步 Office 365 用户帐户(具有 Exchange Online 邮箱)的任何更新都应通过本地 Active Directory 或本地 Exchange 实施,而不是通过 Exchange Online 实施。

    为了演示这种类型的场景,我们使用以下示例:

    场景描述

    • Adele Office 365 用户帐户是来自本地 Active Directory 的同步用户帐户。
    • Adele 拥有 Exchange Online 许可证。

    我们想向 Adele Exchange Online 邮箱添加一个额外的电子邮件地址。

    我们使用以下 PowerShell 命令:

    Set-Mailbox Adele -EmailAddress Adele-NEW01@o365pilot.com -WhatIf

    我们得到以下错误:

    The operation on mailbox "Adele" failed because it's out of the current user's write scope. The action 'Set-Mailbox', 'EmailAddresses', can't be performed on the object 'Adele' because the object is being
    
    synchronized from your on-premises organization. This action should be performed on the object in your on-premises organization.
    
    + CategoryInfo : InvalidOperation: (Adele:ADObjectId) [Set-Mailbox], InvalidOperationException

    出现的错误消息不是很清楚。

    消息“超出了当前用户的写入范围”的简单含义是,更新无法实现,因为 Adele Exchange 邮箱“附加”到同步的 Office 365 用户帐户。

    [玩转系统] 使用 PowerShell 添加电子邮件地址 |办公室 365 |第 3 部分#13

    如果您需要更新从 Exchange 本地环境同步的收件人的电子邮件地址,则需要使用“Exchange 本地 PowerShell 控制台”。

    从 Exchange 本地角度来看,收件人被视为“远程邮箱”。
    例如,如果我们需要更新从 Exchange 本地同步的 Exchange Online 邮箱收件人的主电子邮件地址,我们需要使用以下语法从 Exchange 本地 PowerShell 控制台运行命令。

    更新远程邮箱的主电子邮件地址 |交换混合

    PowerShell 命令语法

    Set-RemoteMailbox <Mailbox> -EmailAddresses <Primary E-mail address> -EmailAddressPolicyEnabled $false

    PowerShell 命令示例

    Set-RemoteMailbox John -EmailAddresses Jhon@o365info.com 
    -EmailAddressPolicyEnabled $false

    当前文章系列的下一篇文章

    使用 PowerShell 添加电子邮件地址 - 批量模式 |办公室 365 |第 4 部分#13

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯