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

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

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

使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13


在本文中,我们将回顾主题 - 如何创建哈希表 + 自定义表达式作为“工具”,我们可以在以下场景中使用它来优化和操作 PowerShell 输出 - 获取有关收件人电子邮件地址的信息。

我们将学习如何创建执行以下任务的哈希表+自定义表达式:

  1. 获取有关特定类型电子邮件地址的信息,例如 - 主电子邮件地址、代理电子邮件地址、x500 电子邮件地址和 SIP 电子邮件地址。
  2. 从 SMTP 电子邮件地址的显示结果中删除默认 SMTP 前缀。
  3. 使用“分隔符章程”分隔多值属性中的值。 ”
  4. 通过定义搜索查询来过滤结果。 ”

使用PowerShell哈希表基本介绍

使用哈希表和自定义表达式的目的是什么?

PowerShell 选项描述为 - 哈希表,是一个非常强大的选项,它使我们能够创建根据我们的特定需求定制的“新属性”。

自定义属性可以通过多种方式实现,例如-计算字段、搜索查询等。

例如,PowerShell 命令Get-Mailbox 可用于显示存储在EmailAddresses 属性中的信息。

EmailAddresses 属性包含特定 Exchange 收件人拥有的所有可用地址的列表。

默认情况下,PowerShell 命令 Get-Mailbox 不包含使我们能够“过滤搜索结果”的内置参数,并且要求仅获取特定类型的电子邮件地址的信息例如代理电子邮件地址。

好消息是,通过使用 PowerShell“哈希表”选项,我们可以创建一个“新收件人属性”,其中将包含我们需要的特定信息。

在我们的例子中,是收件人的所有代理电子邮件地址。这个“NEW收件人属性”的创建是通过“哈希表”实现的。

哈希表”的结构(自定义信息字段)

哈希表”(自定义属性)的概念是通过使用包含两部分的语法来实现的:

第 1#2 部分 - 标签部分

这是哈希表的第一部分,我们在其中定义自定义属性的“名称”。
Name”只是我们定义的任意名称。

第 2#2 部分 - 表达式部分。

这是哈希表的第二部分,我们在其中定义表达式。术语表达式可以翻译为各种类型的“PowerShell 句子”,例如过滤搜索查询、计算值等。

哈希表” |命名对流

我们可以使用两种命名信念选项来编写哈希表

选项 1#2

我们用于定义标签部分的命名约定是通过使用
字母L(标签)来实现的。

我们用于定义表达式部分的命名约定是通过使用字母E(表达式)来实现的。

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

选项2#2

我们用于定义标签部分的命名约定是通过使用术语名称来实现的

我们用于定义表达式部分的命名约定是通过使用术语表达式来实现的

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

使用“哈希表”示例“提取”代理电子邮件地址。

为了演示我们使用哈希表(自定义属性)的方式,我们使用以下示例:我们要显示有关收件人代理电子邮件地址的信息。

在下图中,我们可以看到我们将使用的 PowerShell 命令的结构:

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

A 部分:这是一个标准的 PowerShell Get-Mailbox 命令,我们在其中要求 PowerShell 获取有关 Exchange Online 收件人邮箱的所有可用信息。

B 部分: 在这一部分中,我们使用 PowerShell 参数“select ”仅显示收件人的两个属性:标准 DispalyName 属性 + 我们定义的新自定义属性使用哈希表。

哈希表的语法

我们在本例中用于提取有关代理电子邮件地址信息的 PowerShell 哈希表的语法是:

PowerShell 命令语法

@{Name="Email Addresses";Expression={$_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"}}}

在下图中,我们可以看到哈希表的不同部分:

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

第 1 - 我们使用 @ 字符,用于“声明”我们创建一个特殊的数组(哈希表),其中包含数组名称 + PowerShell 表达式,例如过滤的搜索查询、计算值等。

哈希表 - 名称

数字 2 - 这是我们为数组定义的“名称”。在我们的示例中,我们定义数组名称 - “代理电子邮件地址。”
这只是我根据特定需求选择的任意名称。

哈希表 - 表达式

第三——在我们的示例中,我们要求 PowerShell 创建一个“过滤搜索查询”,该查询将通过以下方式实现:

我们指示 PowerShell 查询名为 EmailAddresses 的收件人属性。快速提醒 - 这是邮箱属性,存储有关每个现有电子邮件地址和其他地址的信息。

第 4 点 - 我们定义一个过滤器,仅获取有关代理电子邮件地址的信息。
该过滤器基于以下结构:

我们使用Where-Object PowerShell 语句来定义一个使用逻辑
运算符cmatch 的条件。

快速提醒 -

  • Exchange 使用 smtp: 前缀存储有关 SMTP 电子邮件地址的信息。
  • 代理电子邮件地址由小写大写字母 smtp: 前缀表示。
  • 主要电子邮件地址由以大写字母书写的 SMTP: 前缀表示。

我们定义的条件实际上是基于两个独立的条件。

我们要求 PowerShell 仅“获取”以前缀 smtp: 开头的电子邮件地址信息,此外,smtp 前缀必须以小型大写字母书写。

为了满足此要求,我们使用 PowerShell 逻辑运算符 cmatch。 PowerShell 逻辑运算符 - cmatch 是为了寻找“完美匹配”+执行区分大小写的匹配而创建的。

使用哈希表优化显示结果 - 收件人电子邮件地址

在本节中,我们将回顾如何使用哈希表和自定义表达式,主要目的有两个:

  1. 增强我们创建自定义\新收件人属性的能力,使我们能够查看有关特定类型电子邮件地址的信息,例如代理电子邮件地址、SIP 地址、x500 电子邮件等。
  2. 通过以下方式优化收件人电子邮件地址的 PowerShell 输出

    • 从输出中删除“不必要的数据”
  3. 添加“分隔字符”将使我们能够更好地使用定义为包含多个电子邮件地址的多值属性的邮箱属性。

在上一节中,我们回顾了创建 PowerShell 哈希表的方法,该哈希表通过显示有关具有特定字符的电子邮件地址(例如代理电子邮件地址)的信息来“过滤”搜索结果。

为此,我们使用 PowerShell 命令,例如:

Get-Mailbox Christina | Select-Object DisplayName,@{Name="Proxy Email Addresses";Expression={$_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"}}}

在下图中,我们可以看到从 PowerShell 命令获得的“输出”。

结果看起来“ok”,因为我们获得了所需的信息含义 - Christina 的代理电子邮件
地址

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

问题 1 - 大括号

当 Exchange Online 收件人有多个代理电子邮件地址时,PowerShell 将使用大括号显示信息。在许多需要使用“电子邮件地址信息”的情况下,我们需要删除大括号字符。

问题 2 - 分隔字符

当 PowerShell“看到”多个电子邮件地址时,PowerShell 将使用逗号 (,) 字符来分隔值(在我们的示例中为电子邮件地址)。

“事情”是,当我们将信息导出到 CSV 文件等文件时,PowerShell 不会使用逗号 (,) 字符,而是使用“空格”来分隔值。

如果我们需要“操作”存储在 CSV 中的数据,我们需要使用一些“分隔字符”,这将使我们能够单独处理每个值。

问题 3 - Smtp 前缀

PowerShell 使用前缀显示每个电子邮件地址,该前缀定义了电子邮件地址的类型。在我们的示例中,每个代理电子邮件地址将使用小型大写字母前缀 smtp: 显示。

如果我们需要对有关“电子邮件地址”的信息“执行某些操作”,则需要使用电子邮件地址中的“clean” smtp: 前缀。

使用参数 - Replace + Join 优化哈希表的输出。

为了能够解决提到的“问题”,我们将使用两个 PowerShell 参数

  1. 代替
  2. 加入

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

在下一节中,我们将向 PowerShell 哈希表添加附加参数,这将帮助我们改进哈希表的输出。

在下图中,我们可以看到添加到哈希表“原始语法”中的附加参数。哈希表

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

删除 SMTP 前缀 |使用替换参数

我们将从以下任务开始:从显示的有关代理电子邮件地址的信息中删除“smtp 前缀”。

在我们的示例中,我们使用以下语法 -replace ‘smtp:’。

顾名思义,PowerShell 命令replace的目的是用“新字符串”替换现有字符串。

在我们的示例中,我们想要删除一个字符串(“smtp 前缀”),而不是“替换”“smtp 前缀”。

我们使用的技巧是,我们“告诉”PowerShell,将“smtp 前缀”替换为“无”。换句话说,我们要求 PowerShell 的“replace”参数替换“smtp prefix”,并将该文本字符串替换为“empty space”。

为了能够满足从电子邮件地址的 PowerShell 输出中删除“smtp 前缀”的要求,我们使用以下 PowerShell 命令语法:

Get-Mailbox Christina | Select-Object DisplayName,@{Name="EmailAddresses";Expression={ ($_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"} | ForEach-Object {$_ -replace 'smtp:' }) }}

在下面的框中,我们可以看到 PowerShell 输出的结果。
请注意,现在每个电子邮件地址均不带 smtp 前缀

PowerShell 控制台输出示例

PS C:\script> Get-Mailbox Christina | Select-Object DisplayName,@{Name="EmailAddresses";Expression={ ($_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"} | ForEach-Object {$_ -replace 'smtp:' }) }}

DisplayName                  EmailAddresses
-----------                  -------------- 
Christina Aguilera           {[email protected], [email protected]}

使用加入参数

我们的旅程并没有结束,因为我们还有一个额外的任务 - 删除电子邮件地址“数组”周围的“大括号”。

此外,我们希望添加一个“分隔符”,当我们将数据导出到 CSV 文件等文件时,它将分隔每个“电子邮件地址值”。

要将分隔字符添加到输出中,我们将使用 PowerShell 参数 - Join 并提供“分隔字符”。在我们的示例中,我们使用字符 - (;)

能够满足以下要求:

  • 从电子邮件地址的 PowerShell 输出中删除 smtp 前缀。
  • 删除电子邮件地址数组周围的“大括号”。
  • 添加分隔符 - 在我们的示例中,我们使用字符 (;)

我们使用以下 PowerShell 命令语法:

Get-Mailbox Christina | Select-Object DisplayName,@{Name="EmailAddresses";Expression={ ($_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"} | ForEach-Object {$_ -replace 'smtp:' }) -join ';' }}

在下面的框中,我们可以看到 PowerShell 输出的结果。
注意,现在

  • 每个电子邮件地址均不带 smtp 前缀。
  • 电子邮件地址数组周围的“大括号”已被删除。
  • 每个电子邮件地址均由字符 - (;) 分隔。

PowerShell 控制台输出示例

PS C:\script> Get-Mailbox Christina | Select-Object DisplayName,@{Name="EmailAddresses";Expression={ ($_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"} | ForEach-Object {$_ -replace 'smtp:' }) -join ';' }}

DisplayName               EmailAddresses
-----------               --------------
Christina Aguilera        [email protected];[email protected]

使用哈希表显示有关收件人电子邮件地址的信息

在下面的部分中,我将回顾几个使用 PowerShell 哈希表的场景示例,以获取有关特定 Exchange 收件人电子邮件地址的信息。

仅显示主电子邮件地址

PowerShell 命令 - Get-Mailbox,包含一个专用参数,使我们能够显示有关定义为 - 主电子邮件地址的特定电子邮件地址的信息。

换句话说,我们不需要实现任何复杂的 PowerShell 命令语法,例如使用哈希表来显示主电子邮件地址。

为了能够仅查看主电子邮件地址,我们可以使用以下 PowerShell 语法:

Get-Mailbox Billy | Select Alias,PrimarySmtpAddress

虽然我们不需要使用特殊的命令配置,但我想提供一个哈希表语法的示例,我们使用它来显示定义为主电子邮件地址的电子邮件。

在本例中,我们使用“cmatch”逻辑运算符定义一个条件,仅当电子邮件地址的前缀包含使用大写字母的字符串“SMTP:”时,“获取”有关电子邮件地址的信息。

Get-Mailbox | Select-Object DisplayName,@{Name="Primary Email Address";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "SMTP:*"}}}

仅显示 SIP 地址

在当前场景中,我们只想查看有关收件人地址的信息,该地址被描述为“SIP 地址”(Skype 商业用户使用的地址)。

SIP 地址以前缀“sip:”开头

为了能够仅“获取”有关 SIP 地址的信息,我们定义以下哈希表表达式:

PowerShell 命令示例

Get-Mailbox | Select-Object DisplayName,@{Name="SIP Email Address";Expression={$_.EmailAddresses |Where-Object {$_ -LIKE "sip:*"}}}

仅显示 x500 电子邮件地址

在当前场景中,我们只想查看有关电子邮件地址的信息,其描述为“x500 电子邮件地址”。

X500 电子邮件地址以前缀“x500:”开头

为了能够仅“获取”有关 x500 地址的信息,我们定义了以下哈希表表达式。

PowerShell 命令示例:

Get-Mailbox | Select-Object DisplayName,@{Name="x500 Email Address";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "x500:*"}}}

创建更“高级”的 PowerShell 哈希表

在本节中,我想演示用于 PowerShell 哈希表的更多“高级”语法

在我们的场景中,我们要求 PowerShell 显示有关每种类型的电子邮件地址的信息,例如主电子邮件地址、别名电子邮件地址、SIP 地址等。

此外,我添加了一个执行计算的“自定义结果字段”(新属性)的新示例,其中我们计算每个 Exchange 收件人拥有的代理电子邮件地址的数量。

该命令的PowerShell语法如下:

@{Name="Number of Proxy Email";Expression={($_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}).count}}

使用的“完整”PowerShell 命令语法是:

Get-Mailbox | Select-Object DisplayName,@{Name="Primary Email Addresses";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "SMTP:*"}}} ,@{Name="Proxy Email Addresseses";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}}} , @{Name=2Number of Proxy Email";Expression={($_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}).count}} ,@{Name="SIP Email Addresseses";Expression={$_.EmailAddresses |Where-Object {$_ -LIKE "sip:*"}}} ,@{Name="X500 EmailAddresseses";Expression={$_.EmailAddresses |Where-Object {$_ -LIKE "x500:*"}}}

PowerShell 控制台输出示例:

PS C:\script> Get-Mailbox | Select-Object DisplayName,@{Name="Primary Email Addresses";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "SMTP:*"}}} ,@{Name="Proxy Email Addresseses";Expression={$_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}}} , @{Name=2Number of Proxy Email";Expression={($_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}).count}} ,@{Name="SIP Email Addresseses";Expression={$_.EmailAddresses |Where-Object {$_ -LIKE "sip:*"}}} ,@{Name="X500 EmailAddresseses";Expression={$_.EmailAddresses |Where-Object {$_ -LIKE "x500:*"}}}

DisplayName : admin
Primary Email Addresses : SMTP:[email protected]
Proxy Email Addresseses : smtp:[email protected]
Number of Proxy Email : 1
SIP Email Addresseses : SIP:[email protected]
X500 EmailAddresseses :

DisplayName : Alice Good
Primary Email Addresses : SMTP:[email protected]
Proxy Email Addresseses : smtp:[email protected]
Number of Proxy Email : 1
SIP Email Addresseses : SIP:[email protected]
X500 EmailAddresseses :

DisplayName : Angelina Jolie
Primary Email Addresses : SMTP:[email protected]
Proxy Email Addresseses : {smtp:[email protected], smtp:[email protected], smtp:[email protected], smtp:[email protected]...}
Number of Proxy Email : 5
SIP Email Addresseses :
X500 EmailAddresseses :

多值属性“EmailAddresses”中的单独值

在本节中,我想回顾一下其他“PowerShell 方法”,其中我们“分离”出现在多值属性中的值。

如前所述,Exchange Online 邮箱属性“EmailAddresses”被视为多值属性,因为它存储几个值,意味着一对(多个)电子邮件地址。

我们的任务是创建一个自定义输出,该输出将在“专用列”中显示每个 Exchange 收件人电子邮件地址。

在以下示例中,我们使用 PowerShell 命令来获取有关
Angelina 电子邮件地址的信息。

Get-Mailbox Angelina | Select-Object DisplayName -ExpandProperty EmailAddresses

在输出中,我们可以看到“EmailAddresses”属性包含许多电子邮件地址。

PS C:\script> Get-Mailbox Angelina | Select-Object DisplayName -ExpandProperty EmailAddresses

smtp:[email protected]
smtp:[email protected]
SPO:SPO_5b27dc17-68b0-442e-804b-aee5b4df9847@SPO_e95bcc9e-2927-483d-ad36-7311a7152bdd
smtp:[email protected]
SMTP:[email protected]
smtp:[email protected]
smtp:[email protected]

[玩转系统] 使用 PowerShell 显示有关电子邮件地址的信息 |使用哈希表和自定义表达式自定义输出 |办公室 365 |第 7 部分#13

我们可以将“EmailAddresses”属性关联为“数组”,并将每个电子邮件地址
关联为“数组成员”。

数组(数组成员)中包含的每个值(成员)由以“0”开头的索引号表示,依此类推。

为了能够寻址特定的数组成员(存储在多值属性“EmailAddresses”中的特定电子邮件地址),我们可以定义代表该成员的特定索引号。

具体索引号采用以下命名约定编写:

  • [0] 用于寻址数组中的“第一个成员”。
  • [1] 用于寻址数组中的“第二个成员”。

等等。

在我们的场景中,我们想要创建一个显示来“获取”数组成员,并单独显示每个成员。

在我们的例子中,获取多值属性“EmailAddresses”中存储的每个“电子邮件地址”,并在专用列中显示有关电子邮件地址的信息。

为了实现这一要求,我们定义了一个自定义信息字段(哈希表),其中包括每个电子邮件地址的“专用列”。

自定义信息字段(哈希表)的语法是使用以下 PowerShell 语法编写的:

@{Name= "E-mail address 01"; E={$_.EmailAddresses[0]}}
  • 在第一部分(标签部分)中,我们定义列标题名称。在我们的示例中,我们定义名称 - 电子邮件地址 01。
  • 在第二部分(表达式部分)中,我们要求 PowerShell 为我们获取多值属性“EmailAddresses”中的第一个值。第一个值由索引号[0]表示。

对于数组中包含的每个附加值,我们多次添加此语法。

为了“获取”数组中的第二个电子邮件地址,我们使用 fowling 语法:

@{Name= "E-mail address 02"; E={$_.EmailAddresses[1]}}

请注意,我们不知道属性“EmailAddresses”中“值”的数量是多少。

我们所能做的只是“推测”并为每个值(电子邮件地址)定义一个专用的自定义信息字段(哈希表)。

在下面的示例中,我创建了五个自定义信息字段(哈希表),假设平均收件人的最大数量不超过“五个电子邮件地址”。 ”

Get-Mailbox | Select-Object DisplayName, @{Name= "E-mail address 01"; E={$_.EmailAddresses[0]}} , @{Name= "E-mail address 02"; E={$_.EmailAddresses[1]}} , @{Name= "E-mail address 03"; E={$_.EmailAddresses[2]}} , @{Name= "E-mail address 04"; E={$_.EmailAddresses[3]}} , @{Name= "E-mail address 05"; E={$_.EmailAddresses[4]}}

PowerShell 控制台输出示例

PS C:\script> Get-Mailbox | Select-Object DisplayName, @{Name= "E-mail address 01"; E={$_.EmailAddresses[0]}} , @{Name= "E-mail address 02"; E={$_.EmailAddresses[1]}} , @{Name= "E-mail address 03"; E={$_.EmailAddresses[2]}} , @{Name= "E-mail address 04"; E={$_.EmailAddresses[3]}} , @{Name= "E-mail address 05"; E={$_.EmailAddresses[4]}}

DisplayName : admin
E-mail address 01 : SIP:[email protected]
E-mail address 02 : SMTP:[email protected]
E-mail address 03 : smtp:[email protected]
E-mail address 04 :
E-mail address 05 :

DisplayName : Alice Good
E-mail address 01 : SIP:[email protected]
E-mail address 02 : SMTP:[email protected]
E-mail address 03 : smtp:[email protected]
E-mail address 04 :
E-mail address 05 :

DisplayName : Angelina Jolie
E-mail address 01 : smtp:[email protected]
E-mail address 02 : smtp:[email protected]
E-mail address 03 : SPO:SPO_5b27dc17-68b0-442e-804b-aee5b4df9847@SPO_e95bcc9e-2927-483d-ad36-7311a7152bdd
E-mail address 04 : smtp:[email protected]
E-mail address 05 : SMTP:[email protected]

获取有关其主电子邮件地址包含特定域名后缀的收件人的信息

在下面的部分中,我想回顾更多使用 PowerShell 哈希表和“自定义表达式”与 PowerShellWhere 语句组合的场景示例。
在这种情况下,我们需要实现 PowerShell 搜索查询,显示有关满足以下条件的 Exchange 收件人电子邮件地址的信息:
我们只想获取有关其主电子邮件地址包含特定域名后缀的收件人的信息。
在我们的示例中,我们查找的域名后缀是 - o365pilot.com。
有关此 Exchange 收件人的信息将包括收件人的显示名称、主电子邮件地址及其代理电子邮件地址。
PowerShell 语法我们使用的是

Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySMTPAddress, @{Name="Proxy Email Addresses";Expression={$_.EmailAddresses -cmatch "smtp"}} | Where-Object {($_.PrimarySMTPAddress -like "*o365pilot.com*") };

PowerShell 控制台输出示例

PS C:\temp> Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySMTPAddress, @{Name="Proxy Email Addresses";Expression={$_.EmailAddresses -cmatch "smtp"}} | Where-Object {($_.PrimarySMTPAddress -like "*o365pilot.com*") } 

Creating a new session for implicit remoting of "Get-Mailbox" command...

DisplayName              PrimarySmtpAddress                         Proxy Email Addresses 
-----------              ------------------                         --------------------- 
Beatles the              [email protected]                      smtp:[email protected] 
Britney spears           [email protected]                      {smtp:[email protected], smtp:[email protected]}
Craig David              [email protected]                        smtp:[email protected] 
Depeche Mode             [email protected] 
Elvis Preslay            [email protected] 
E-mail attachments       Mailbox [email protected]   smtp:[email protected] 
Justin timberlake        [email protected]                       smtp:[email protected] 
Spoof E-mails MailBox    [email protected]         smtp:[email protected]

此情况的另一个变体是我们希望获取有关其主电子邮件地址包含特定域名后缀或“其他”域名后缀的 Exchange Online 收件人的信息。

在我们的示例中,我们查找主要电子邮件地址包含域名后缀的收件人的域名后缀 - o365pilot.com 或 o365info.com

PowerShell命令示例_

Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySMTPAddress, @{Name="EmailAddresses";Expression={$_.EmailAddresses -cmatch "smtp"}} | Where-Object {($_.PrimarySMTPAddress -like "*o365pilot.com*") -or ($_.PrimarySMTPAddress -like "*o365info.com*")};

查看有关包含特定域名后缀的代理电子邮件地址(别名)的信息

在这种情况下,我们希望获得有关满足以下条件的电子邮件地址的信息:

  • 条件 1#2 - 仅别名(代理)电子邮件地址
  • 条件 2#2 - 仅限使用特定域名后缀的别名(代理)电子邮件地址

我们使用的 PowerShell 语法是

$Array1 = DisplayName,@{Name="Primary Email Addresses";Expression={$_.EmailAddresses | Where-Object {$_ -cmatch "SMTP:*"}}}, @{Name="Proxy E-mail addresses";Expression={$_.EmailAddresses | Where-Object {$_ -cmatch "smtp:*"}}}, @{Name="Proxy Email addresses number";Expression={($_.EmailAddresses |Where-Object {$_ -cmatch "smtp:*"}).count}}

Get-Mailbox -ResultSize Unlimited | Where-Object {$_.emailaddresses -cmatch "smtp:*" -and $_.emailaddresses -like "smtp:*@o365pilot"} |select $Array1

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

各种类型的 Exchange Online 收件人简介 | PowerShell cmdlet |办公室 365 |第 8 部分#13

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

取消回复欢迎 发表评论:

关灯