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

[玩转系统] 使用 PowerShell 搜索“隐藏”电子邮件地址 |办公室 365 |第 11 部分#13

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

使用 PowerShell 搜索“隐藏”电子邮件地址 |办公室 365 |第 11 部分#13


在本文中,我们回顾了使用 PowerShell 在 Office 365 和 Exchange Online 环境中创建搜索、查找“隐藏”或“幽灵”电子邮件地址的过程。

术语“幽灵电子邮件地址”不是一个技术术语,而是一个术语,用于描述我们需要找到使用标准 Exchange Online Web 管理界面无法找到的特定电子邮件的场景。

此类情况的一个示例可能是这样一种情况:我们想要将电子邮件地址添加到 Exchange Online 收件人,但我们收到一条错误消息,通知我们该电子邮件地址与另一个收件人关联。

我们面临的挑战是——如何找到拥有该电子邮件地址的“隐藏收件人”。

[玩转系统] 使用 PowerShell 搜索“隐藏”电子邮件地址 |办公室 365 |第 11 部分#13

使用PowerShell脚本实现E-mail地址的“统一搜索” | Exchange Online + Office 365 基础设施

我们用于定位电子邮件地址的 PowerShell 查询基于 PowerShell“Where 语句”。

PowerShellWhere 语句定义了针对 Exchange Online 收件人和 Office 365 用户的“搜索条件”。

  • 对于 Exchange Online 收件人,我们将查询属性 EmailAddresse
  • 对于Office 365用户帐户,我们将查询属性ProxyAddresses
  • 属性UserPrincipalName

以下 PowerShell 命令通过“寻址”所有 Exchange Online 收件人(PowerShell 命令 Get-Recipient)来执行对特定电子邮件地址的搜索。

Where 语句寻址 Exchange Online 收件人的“EmailAddresses 属性”,并查找文本字符串“*[email protected]”。

Get-Recipient -ResultSize unlimited| Where {$_.EmailAddresses -like "*[email protected]"} | FL DisplayName,EmailAddresses

请注意,我们使用的 PowerShell 运算符“Like”并不执行“完全匹配”。

虽然技术上我们可以使用 PowerShell 运算符 eq(等于),但我更喜欢使用 PowerShell 运算符“Like”,因为在基于 Office 365 的环境中,“电子邮件我们寻找的“地址”可以“显示”为:

  • SMTP 电子邮件地址
  • SIP 电子邮件地址
  • Office 365 UPN 名称

如果我们使用 PowerShell 运算符 eq(等于),我们将需要提供我们要查找的确切字符串。

例如,如果我们想要查找 bob 电子邮件地址,我们将需要使用如下语法:

Where {$_.EmailAddresses -eq "smtp:[email protected]"}

使用 PowerShell 脚本执行“统一搜索”,查找特定的电子邮件地址或特定的 UPN 名称。

以下PowerShell脚本的目的是帮助我们执行“统一”搜索,即查询Azure Active Directory基础设施和Exchange Online基础设施。

  • 该脚本“寻址”所有可用的 Exchange Online 收件人和 Office 365 用户,并查询包括有关电子邮件地址或 UPN 名称的信息的特定属性。
  • PowerShell 脚本使用“Where 语句”,定义搜索查询条件——查找特定的电子邮件地址。 (执行脚本时,您需要输入您要查找的“电子邮件地址”)。
  • 如果 PowerShell 找到使用特定电子邮件地址的 Office 365 用户或 Exchange Online 收件人,该信息将显示在屏幕上。

使用基于菜单的 PowerShell 脚本。

如果您“害怕”复杂的语法,我准备了易于使用的在 Office 365 PowerShell 脚本中管理电子邮件地址。

PowerShell 脚本将帮助您创建与 Azure Active Directory + Exchange Online 所需的远程 PowerShell 连接,并通过选择特定的菜单编号来执行所需的搜索。

创建远程 PowerShell 会话。

您将需要使用 PowerShell 连接到 Exchange Online。

搜索特定电子邮件地址 |搜索范围=Exchange Online

以下 PowerShell 脚本示例执行仅寻址 Exchange Online 基础结构的搜索。搜索将寻址所有现有的 Exchange Online 收件人并搜索特定的电子邮件地址。

$Alias = Read-Host "Type the name of the E-mail address that you are looking for "

# Exchange Online infrastructure
$SoftDeleted = Get-Mailbox -SoftDeletedMailbox | Where { $_.EmailAddresses -like "*$Alias" }
$UnifiedGroups = Get-UnifiedGroup | Where { $_.EmailAddresses -like "*$Alias" }
$AllRecipients = Get-Recipient -ResultSize unlimited | Where { $_.EmailAddresses -like "*$Alias" }

if ($SoftDeleted -eq $null) {
    write-host "The E-mail address $Alias, is not a Soft Deleted Exchange Online mailbox"
}
Else {
    write-host --------------------------------------------------------
    write-host "The E-mail address $Alias, belong to Unified Group"
    write-host Recipient display name is- $AllRecipients.DisplayName
    write-host Recipient E-mail addresses are - $AllRecipients.EmailAddresses
    write-host Recipient Type is - $AllRecipients.RecipientType
    write-host -------------------------------------------------------
}
if ($UnifiedGroups -eq $null) {
    write-host "The E-mail address $Alias, is not a Unified Group"
}
Else {
    belong to Soft Deleted Exchange Online mailbox
}
if ($AllRecipients -eq $null) {
    write-host "The E-mail address $Alias, is not Exchange Online recipient "
}
Else {
    write-host --------------------------------------------------------
    write-host "The E-mail address $Alias, belong to Exchange Online Recipient"
    write-host Recipient display name is- $AllRecipients.DisplayName
    write-host Recipient E-mail addresses are - $AllRecipients.EmailAddresses
    write-host Recipient Type is - $AllRecipients.RecipientType
    write-host -------------------------------------------------------
}

在下一篇文章中,我们将了解使用 PowerShell 删除电子邮件地址 |办公室 365 |第 12 部分#13。

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

取消回复欢迎 发表评论:

关灯