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

[玩转系统] 使用 PowerShell 导出并显示有关电子邮件地址的信息 |办公室 365 |第 6 部分#13

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

使用 PowerShell 导出并显示有关电子邮件地址的信息 |办公室 365 |第 6 部分#13


在本文中,我们将回顾用于显示有关 Exchange Online 收件人的电子邮件地址的信息的基本 PowerShell 命令语法。

此外,我们还回顾了在需要将 PowerShell 命令输出导出为各种类型文件(例如 TXT、CSV、HTML 和 XML)时使用的 PowerShell 命令语法。

我们用于获取有关电子邮件地址的信息的 PowerShell 命令的结构

我们用于显示有关电子邮件地址的信息的 PowerShell 命令的结构实现如下:

1. 具体收件人类型

我们使用 PowerShell cmdlet 前缀 Get 并指定我们要处理的特定 Exchange Online 收件人类型。文章中 - 各种类型的 Exchange Online 收件人简介 | PowerShell cmdlet |办公室 365 |第 8#13 部分,我们将对 Exchange Online 收件人的多样性印象深刻。现在,我们简单地说,我们可以指定特定类型的收件人,例如“邮箱收件人”、“组收件人”等,或者,我们可以使用 PowerShell cmdlet,例如 Get-Recipient与大多数现有 Exchange Online 收件人类型相关。

2.我们要显示的接收者“标准”属性

大多数时候,我们想要选择性地“告诉”PowerShell,我们想要查看的特定对象(接收者)属性是什么。

属性的定义可以是“标准收件人属性”(编号2):

  1. “身份属性”,例如 DisplayName 或 Alias
  2. “存储”电子邮件地址信息的收件人属性,例如 EmailAddresses PrimarySmtpAddress

同时,PowerShell 使我们能够创建“自定义属性”(数字 3),其中包括我们为特定属性定义的名称和“计算输出”,例如查询结果、一些计算等在。

我们将在文章 - 使用 PowerShell 添加电子邮件地址 - 从 CSV 文件导入 | 中回顾此方法。批量模式 |办公室 365 |第 5 部分#13

使用PowerShell命令的“输出”——有关电子邮件地址的信息

我们从“为我们获取”有关 Exchange 收件人电子邮件地址的信息的 PowerShell 命令中获得的“输出”可以是:

  • 显示在 PowerShell 控制台上。
  • 存储在变量中。
  • 导出为各种文件类型,例如 TXT、CSV、XML 和 HTML。

在下图中,我们可以看到 PowerShell 命令的结构,该命令用于显示有关“电子邮件地址”的信息,并可选择将信息导出到文件。

[玩转系统] 使用 PowerShell 导出并显示有关电子邮件地址的信息 |办公室 365 |第 6 部分#13

电子邮件地址属性 |电子邮件地址存储

在 Exchange Online 环境中充当所有类型电子邮件地址“逻辑容器”的“主存储”是一个名为 EmailAddresses 的字段。

注意 - 在 Office 365 和 Exchange Online 环境中,还有其他“电子邮件属性”字段。例如,Exchange Online 使用以下属性WindowsEmailAddressPrimarySmtpAddress 来存储有关主电子邮件地址的信息。

Exchange Online 收件人 - 各种类型的电子邮件地址

每个 Office 365 收件人可以有多个电子邮件地址,其中包括:

  1. Smtp 电子邮件地址(主电子邮件地址和代理电子邮件地址。
  2. x500 电子邮件地址。
  3. 非 SMTP 电子邮件地址”,例如 - SIP 地址,在使用 Skype 商业服务时用作用户身份。

[玩转系统] 使用 PowerShell 导出并显示有关电子邮件地址的信息 |办公室 365 |第 6 部分#13

在 PowerShell 控制台上查看有关电子邮件地址的信息

使用 PowerShell 控制台显示电子邮件地址信息

我们用于显示有关收件人电子邮件地址的信息的“默认”PowerShell 命令语法非常简单。

我们需要指定:

  • 收件人的具体类型,例如“邮箱收件人”。
  • Exchange Online 收件人的身份(别名或电子邮件地址等)
  • 我们想要显示的特定属性,例如 DisplayNamePrimarySmtpAddressEmailAddresses

PowerShell 命令语法

Get-Mailbox <Identity> | Select DisplayName,EmailAddresses

PowerShell 命令示例

Get-Mailbox Billy | Select DisplayName,EmailAddresses

在下面的屏幕截图中,我们可以看到结果(EmailAddresses 属性内容)。 EmailAddresses字段中存储的信息包括所有
现有电子邮件地址的信息,以及收件人拥有x500电子邮件地址和SIP地址的“其他地址”信息。

[玩转系统] 使用 PowerShell 导出并显示有关电子邮件地址的信息 |办公室 365 |第 6 部分#13

显示有关主电子邮件地址的信息

如果我们只需要显示有关特定 Exchange Online 收件人的主电子邮件地址的信息,我们可以使用以下语法。

PowerShell 命令示例:

Get-Mailbox Billy |Select-Object DisplayName,PrimarySmtpAddress

要显示有关所有 Exchange Online 邮箱主电子邮件地址的信息,我们可以使用以下 PowerShell 命令语法。

PowerShell 命令示例:

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress

PowerShell 控制台对电子邮件地址主题的“限制”

虽然我们可以使用 PowerShell 控制台来显示有关 Exchange Online
收件人电子邮件地址的信息,但由于内置的限制,使用 PowerShell 控制台并不那么舒服。

例如,如果特定收件人有多个电子邮件地址,PowerShell 控制台默认情况下无法显示所有电子邮件地址。

相反,PowerShell 控制台显示有限数量的电子邮件地址并使用三个点字符 (...)。

三个点字符 (...) 的目的是“告诉”我们,还有无法显示的其他电子邮件地址。

展开“电子邮件地址属性y”

关于多值收件人电子邮件属性显示“完整内容”的“问题”,我们可以针对特定收件人针对多个电子邮件地址显示的问题实施“部分解决方案”,但这种解决方案并不正确在我们需要显示多个收件人信息的场景中实现

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

PowerShell 命令示例

Get-Mailbox Angelina | Select-Object -ExpandProperty EmailAddresses

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

PS C:\script> Get-Mailbox Angelina | Select-Object -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]

导出有关收件人电子邮件地址的信息

与 Exchange 收件人相关的最常见管理任务之一是需要查看和导出有关收件人电子邮件地址的信息。
在许多情况下,我们需要“保存”有关收件人电子邮件地址的信息通过将信息导出到文件来供以后使用的邮件地址。

在前面的文章中,我们回顾了带有 Set 前缀的 PowerShell 命令,例如用于更新 Exchange 收件人电子邮件地址的 Set-Mailbox

要获取有关 Exchange Online 收件人的特定属性的信息(例如收件人的电子邮件地址),我们使用带有 Get 前缀的 PowerShell 命令,例如 Get-Mailbox

PowerShell 命令 Get-Mailbox 在 PowerShell 控制台上显示输出。如果我们需要导出信息,我们会向 PowerShell 命令添加一个额外的“部分”,其中包含有关我们要使用的文件类型的说明。

使用 PowerShell 和支持的文件格式导出到文件。

PowerShell 支持将命令输出导出为以下文件格式的选项:文本、CSV、HTML 和 XML。

当我们想要将“命令输出”导出到文件时,我们需要“告诉”PowerShell我们想要使用的所需文件格式是什么。

除了我们用来定义特定文件格式的 PowerShell cmdlet 之外,我们还可以“添加”与特定文件格式相关的特定参数。

例如,当我们希望将 PowerShell 命令输出导出为 CSV(逗号分隔值)文件格式时,我们可以添加其他参数,例如:

  • NoTypeInformation:此选项可防止 PowerShell 将不必要的信息添加到 CSV 文件中。
  • 编码UTF8:当用户、邮箱等对象包含非英文字符时,我们可以添加这个“格式参数”,使PowerShell导出包含非英文字符的信息。

文件名和“路径”参数

将命令输出导出到文件时的强制要求是“文件名.txt”。

附加部分是“Path. “path”参数定义了我们要保存文件的具体位置。例如 - C:\Temp

“path”参数不是强制参数。大多数时候,当我们将信息导出到文件时,我们还会提供“路径”信息。

如果我们不提供特定路径,PowerShell 会将文件导出到我们运行 PowerShell 命令的文件夹。

值得一提的是,当我们提供特定路径的名称时,例如 C:\Temp,PowerShell 命令“ except ”该路径已创建。

换句话说,默认情况下,PowerShell 命令不会“为我们创建”“path”参数中指定的特定文件夹。

用于将信息导出到各种文件类型的 PowerShell 语法示例

以下部分包括我们使用四种文件格式导出有关 Exchange Online 邮箱收件人的电子邮件地址的信息的 PowerShell 命令语法示例。

导出命令语法由两部分组成:

  • 第 1#2 部分 - 这是 GetPowerShell cmdlet 的一部分,用于获取特定信息。
  • 第 2#2 部分 - 这是我们定义特定文件格式、路径和文件名的部分。

在下一节中,我们可以看到四种文件格式(TXT、CSV、XML 和 HTML)的“导出语法”示例。

将 PowerShell 命令输出导出到文本文件。

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Out-File C:\Temp\"Exchange Online recipients.TXT"

将 PowerShell 命令输出导出到 CSV 文件。

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Export-CSV C:\Temp\"Exchange Online recipients.CSV" -NoTypeInformation -Encoding UTF8

将 PowerShell 命令输出导出到 HTML 文件。

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | ConvertTo-Html | Out-File C:\Temp\"Exchange Online recipients.HTML"

将 PowerShell 命令输出导出到 XML 文件。

Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Export-Clixml C:\Temp\"Exchange Online recipients.XML"

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

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

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

取消回复欢迎 发表评论:

关灯