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

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

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

使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13


在当前文章中,我们回顾了用于“构造”查询的 PowerShell 命令语法,用于使用 PowerShell where 过滤器搜索特定电子邮件地址。

在开始搜索电子邮件地址之前我们需要了解的事情

在本节中,我想简要回顾一下与在 Office 365 环境中执行电子邮件地址搜索任务相关的要点。

1.在哪里执行搜索?
如前所述,在 Office 365 环境中,不同环境的“网格”构建了逻辑术语“Office 365”。

我们查找的信息可以与位于 Azure Active Directory 中的 Office 365 用户相关联,或者与托管在 Exchange Online 基础结构中的 Exchange Online 收件人相关联。

因此,我们需要回答的第一个问题是我们要在“哪里”执行搜索?

2.在线交流 |我们要查询的“收件人类型”是什么?
Exchange Online 包含大量不同的收件人类型。

在乌托邦世界中,我们可以使用一个“神奇的”PowerShell cmdlet,它将帮助我们扫描和获取有关所有现有 Exchange Online 收件人的信息。现实有点复杂,因为不幸的是,没有这样的命令。

为了能够寻址所有可用的 Exchange Online 收件人,我们需要使用 PowerShell cmdlet 的“混合”来寻址不同类型的 Exchange Online 收件人。

3.术语“电子邮件地址”
在 Office 365 环境中,术语“电子邮件地址”可以翻译为广泛的“地址”,它们使用与电子邮件地址相同的命名结构。 “SMTP 电子邮件地址。”

例如,

  • Office 365 用户登录名 (UPN) 基于 SMTP 电子邮件地址的命名结构。
  • SIP 地址(Skype for Business 用户)使用与 SMTP 电子邮件地址相同的命名结构。

4.使用什么 PowerShell 语法来执行搜索?

在本文中,我们将使用 PowerShell Where 语句作为执行查询的工具,该工具将扫描现有 Office 365 对象(Office 365 用户帐户和 Exchange Online 收件人),并“获取”我们是回答特定标准的对象。

作为“文本字符串”的电子邮件地址

PowerShell 提供了许多方法来实现查找特定“文本字符串”的任务。在我们的场景中,我们寻找的“文本字符串”是一个“电子邮件地址”。
当我们说我们正在寻找一个电子邮件地址时,术语“电子邮件地址”可以被实现作为:

  • 电子邮件地址的“左侧部分”。这是包含收件人别名的部分。当我们查找有关特定别名的信息时,我们会涉及到电子邮件地址的“左侧部分”。
  • 电子邮件地址的“右侧部分”。这是包含域名后缀的部分。当我们查找
    有关具有特定域名的电子邮件地址的信息时,我们会涉及到电子邮件地址的“右侧部分”。
  • “右侧部分”+“左侧部分”。在我们搜索特定电子邮件地址的场景中,我们与电子邮件地址部分的展位相关。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

使用 PowerShell 使用Where语句搜索特定电子邮件地址

在下图中,我们可以看到 PowerShell 命令的基本结构,在该结构中我们查找具有特定域名后缀的电子邮件地址。

“PowerShell 查询”是使用 Where 过滤器创建的。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

PowerShell 命令语法的不同“部分”

第 1#4 部分 - Exchange Online 收件人对象

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

第一部分是我们选择特定 Exchange Online 收件人的部分。在我们的示例中,Exchange 收件人“类型”是 Exchange 邮箱。

第 2#4 部分 - Where 过滤器

在这一部分中,我们使用PowerShell Where语句+“查询过滤器”的定义,即“搜索条件”。

PowerShell Where 语句,包括以下部分:

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

为了执行所需的搜索(定义了我们仅搜索具有特定字符(例如特定域名后缀)的电子邮件地址的条件),我们使用 PowerShell 语句 Where

PowerShell 查询“位于”大括号之间。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

在我们的场景中,我们查询 Azure Active Directory 基础结构 + Exchange Online 基础结构。

  • 当我们查询 Exchange Online 基础结构时,我们会“寻址”名为 EmailAddresses 的 Exchange Online 收件人属性。
  • 当我们查询 Azure Active Directory 基础结构时,我们“寻址”名为 UserPrincipalName 的 Office 365 用户属性和属性 ProxyAddresses

我们使用的 PowerShell 运算符

在查找特定电子邮件地址的场景中,我们可以选择我们使用的 PowerShell 运算符的几个选项。

例如,我们可以使用 PowerShell 运算符 eq(等于)或 PowerShell 运算符 like

PowerShell 运算符“Like”顾名思义,我们搜索与我们提供的电子邮件地址“相似”的电子邮件地址。

在我们的特定场景中,Exchange Online 收件人可以“使用”特定电子邮件地址
作为“SMTP 电子邮件地址”或“SIP 地址”。

例如,当使用 PowerShell 运算符“like”查找以下电子邮件地址 [email protected] 时,如果发现 SMTP 电子邮件地址包含该“搜索字符串”或 SIP 地址,则 PowerShell 命令将显示结果包括“搜索字符串”。

如果我们使用比较运算符“like”,则必须使用星号字符 (*)

  • 为了能够定义一个条件,在该条件中,我们希望找到一个以定义的字符“开始”的文本字符串,但我们不知道它如何“结束”,我们将添加星号字符(*) 位于我们“提供”给 PowerShell 命令的文本字符串的末尾。
  • 为了能够定义一个条件,在该条件中,我们想要找到一个以定义的字符“结束”的文本字符串,但我们不知道它如何“开始”,我们将添加星号字符(*) 在我们“提供”给 PowerShell 命令的文本字符串的开头。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

如图所示,PowerShell 运算符“Like”和星号字符 (*) 是好朋友。

我们可以使用的 PowerShell 运算符的另一个示例是运算符 - eq(等于)。

当我们想要“告诉”PowerShell 我们想要执行寻找“完美匹配”的搜索时,我们使用运算符 eq(等于)。

例如,如果我们想要查找以下电子邮件 - [email protected] 但仅当该地址是 SMTP 地址时才显示信息,我们将使用以下 PowerShell 语法:

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

如果您对我们需要执行的所有信息和各种搜索感到负担过重,我创建了一个基于 PowerShell 菜单的脚本,名为
管理电子邮件地址.ps1,这将简化搜索电子邮件的任务带有特定域名后缀的地址。

第 3#4 部分 - 显示的对象属性“字段”

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

每个收件人对象(例如 Exchange Online 邮箱)都有许多属性。

Where 过滤器获取所需信息(在我们的示例中,是回答特定条件的 Exchange 收件人)后,“PowerShell 输出”会显示收件人或收件人列表。

将使用“预定义的对象属性”显示每个收件人。

大多数时候,我们希望更改此“默认值”,并“通知”PowerShell,与我们相关的特定收件人属性(属性)是什么。

例如,在我们查找具有特定电子邮件地址的收件人的场景中,与我们相关的主要属性是:

  • 收件人姓名,例如 - 显示名称。
  • 收件人的类型 (Recipienttype),例如邮箱用户或联系人。
  • 与特定收件人关联的电子邮件地址。

为了“通知”PowerShell 命令我们希望显示(或导出)的具体属性是什么,我们使用 PowerShell 参数,例如 SelectFL (Format-List )或FT(格式表)。

我们希望显示的每个“属性”都将用逗号字符分隔。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

第 4#4 部分 - 导出结果。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

默认情况下,PowerShell 查询的结果显示在 PowerShell 控制台上。

关于获取有关 Exchange Online 收件人电子邮件地址(或 Office 365 UPN 名称)的信息的任务,在许多情况下,我们需要将信息导出到文件中。”

将信息存储在文件中,使我们能够通过使用过滤器、特定视图“操作”数据,此外还可以编辑和管理数据。

要导出有关从 PowerShell Where 过滤器创建的电子邮件地址的信息,我们需要提供所需的特定文件类型,例如 CSV、TXT 或 HTML。

[玩转系统] 使用 PowerShell 搜索电子邮件地址 |在哪里过滤 |办公室 365 |第 9 部分#13

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

使用 PowerShell 搜索具有特定域名后缀的电子邮件地址 |办公室 365 |第 10 部分#13

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

取消回复欢迎 发表评论:

关灯