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

[玩转系统] 如何使用 PowerShell 删除电子邮件地址

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

如何使用 PowerShell 删除电子邮件地址


若要从 Microsoft 365 中的特定邮箱中删除单个或多个电子邮件地址,您可以使用 Exchange 管理中心或 Microsoft 365 管理中心。但是,PowerShell 脚本可以从所有邮箱中删除多个电子邮件地址,这可以节省大量时间。在本文中,您将了解如何使用 PowerShell 删除电子邮件地址。

管理 Exchange Online 中的电子邮件地址

要管理 Microsoft 365 组织中的电子邮件地址,请使用以下文章:

  • 使用 PowerShell 添加电子邮件地址
  • 使用 PowerShell 删除电子邮件地址(本文)
  • 使用 PowerShell 导出电子邮件地址

删除电子邮件地址

可通过三种方法从邮箱中删除电子邮件地址:

  • Microsoft 365 管理中心
  • 交易所管理中心
  • 在线交换 PowerShell

Microsoft 365 管理中心仅显示主 SMTP 地址和别名,它们都是辅助和附加电子邮件地址。在 Exchange 管理中心中,有有关每个电子邮件地址的详细信息,例如 SMTP、smtp SIP、代理或 x500。

我们将使用 Set-Mailbox cmdlet 在 PowerShell 中删除电子邮件地址。

删除 Exchange 管理中心中的电子邮件地址

  1. 登录 Exchange 管理中心
  2. 单击收件人>邮箱
  3. 单击邮箱
  4. 点击管理电子邮件地址类型

[玩转系统] 如何使用 PowerShell 删除电子邮件地址

  1. 单击回收站图标删除电子邮件地址

[玩转系统] 如何使用 PowerShell 删除电子邮件地址

  1. 点击保存

[玩转系统] 如何使用 PowerShell 删除电子邮件地址

在下一步中,我们将展示如何在 PowerShell 中删除单个邮箱和所有邮箱的电子邮件地址。

连接到 Exchange Online PowerShell

若要运行当前文章中指定的 PowerShell 命令,您必须连接到 Exchange Online PowerShell。

Connect-ExchangeOnline

使用 PowerShell 从单个邮箱中删除特定电子邮件地址

要删除电子邮件地址,请使用带有 @{remove 参数的 Set-Mailbox cmdlet。

在我们的示例中,我们想要删除特定用户的别名地址([email protected])。

Set-Mailbox "[email protected]" -EmailAddresses @{remove = "[email protected]" }

它只会删除这个特定的电子邮件地址,所有其他电子邮件地址都会保留。

您还可以使用减号 (-) 代替删除,但将减号括在引号中。

Set-Mailbox "[email protected]" -EmailAddresses @{"-" = "[email protected]" }

从单个邮箱中删除主 SMTP 电子邮件地址

没有删除主 SMTP 地址的选项,因为每个邮箱都需要有一个主 SMTP 地址。

唯一的方法是添加新的主 SMTP 地址,这会将旧的主 SMTP 地址保存为辅助 SMTP 地址。然后,您可以随时从邮箱中删除旧的 smtp 地址。

您还可以在 Microsoft 365 管理中心和 PowerShell 中更改 Microsoft 365 主 SMTP 地址。

方法 1. 删除主 SMTP 地址和所有其他电子邮件地址

使用 PowerShell 命令中的 -EmailAddresses 参数添加新的主 SMTP 电子邮件地址并删除其他现有电子邮件地址。

Set-Mailbox "[email protected]" -EmailAddresses SMTP:[email protected]

PowerShell 命令结果:

  • 新的 SMTP 电子邮件地址([email protected])将取代当前的电子邮件地址。
  • 旧的 SMTP 主电子邮件地址将另存为辅助 smtp 电子邮件地址。
  • 所有其他附加电子邮件地址(例如别名、代理、.onmicrosoft.com 和 SIP 地址)都将被删除(删除)。

运行 PowerShell 命令后,您将收到以下警告。

警告:代理地址“[email protected]”用作 WindowsLiveId。因此无法将其从电子邮件地址列表中删除。要删除它,请首先更改 WindowsLiveId。

方法 2. 删除主 SMTP 地址并保留所有现有电子邮件地址

使用 PowerShell 命令中的-WindowsEmailAddress 参数添加新的主 SMTP 电子邮件地址而不删除所有其他电子邮件地址。

Set-Mailbox "[email protected]" -WindowsEmailAddress [email protected]

PowerShell 命令结果:

  • 新电子邮件地址([email protected])将取代当前的电子邮件地址。
  • 旧的 SMTP 主电子邮件地址将另存为辅助 smtp 电子邮件地址。
  • 所有其他附加电子邮件地址(例如别名、代理、.onmicrosoft.com 和 SIP 地址)均保持不变。

从单个邮箱中批量删除所有辅助 smtp 电子邮件地址

您可以删除具有特定域名的单个用户的所有 smtp 电子邮件地址。

在我们的示例中,我们希望从用户 ([email protected]) 中删除域为 a-d.site 的所有 smtp 电子邮件地址。所有其他附加电子邮件地址(例如代理、.onmicrosoft.com 和 SIP 地址)将保持不变。

按照以下步骤删除特定用户的所有 smtp 电子邮件地址:

  1. 第 2 行中指定
  2. 第 5 行中指定用户
  3. 运行以下 PowerShell 脚本
# Define the domain you want to remove
$DomainToRemove = "a-d.site"

# Get the mailbox
$Mailbox = Get-Mailbox -Identity "[email protected]"

# Iterate through each email address associated with the mailbox
foreach ($EmailAddress in $Mailbox.EmailAddresses) {
    # Check if the email address matches the domain you want to remove
    if ($EmailAddress -clike "smtp:*@$DomainToRemove") {
        # Remove the secondary smtp email addresses
        $MailboxID = $Mailbox.PrimarySmtpAddress
        Set-Mailbox "$MailboxID" -EmailAddresses @{remove = $EmailAddress }
        Write-Host "The following email address $EmailAddress was removed from $MailboxID mailbox" -ForegroundColor Green
    }
}

PowerShell 输出显示以下结果。

The following email address smtp:[email protected] was removed from [email protected] mailbox
The following email address smtp:[email protected] was removed from [email protected] mailbox

从所有邮箱中批量删除所有辅助 smtp 电子邮件地址

假设您的组织有不同的域名,并且您想要删除具有特定域名后缀的所有 smtp 电子邮件地址。

在我们的示例中,我们要删除域名为 a-d.site 的所有电子邮件地址。 PowerShell 脚本只会删除具有特定域名(a-d.site) 的 smtp 电子邮件地址。所有其他附加电子邮件地址(例如代理、.onmicrosoft.com 和 SIP 地址)都将保留。

要从组织中的所有邮箱中删除所有 smtp 电子邮件地址,您需要执行以下步骤:

  1. 第 2 行中指定
  2. 运行以下 PowerShell 脚本
# Define the domain you want to remove
$DomainToRemove = "a-d.site"

# Get the mailbox
$Mailboxes = Get-Mailbox -ResultSize Unlimited

# Iterate through each email address associated with the mailbox
foreach ($Mailbox in $Mailboxes) {
    # Iterate through each email address associated with the mailbox
    foreach ($EmailAddress in $Mailbox.EmailAddresses) {
        # Check if the email address matches the domain you want to remove
        if ($EmailAddress -clike "smtp:*@$DomainToRemove") {
            # Remove the secondary smtp email addresses
            $MailboxID = $Mailbox.PrimarySmtpAddress
            Set-Mailbox "$MailboxID" -EmailAddresses @{remove = $EmailAddress }
            Write-Host "The following email address $EmailAddress was removed from $MailboxID mailbox" -ForegroundColor Green
        }
    }
}

PowerShell 输出显示以下结果。

The following email address smtp:[email protected] was removed from [email protected] mailbox
The following email address smtp:[email protected] was removed from [email protected] mailbox
The following email address smtp:[email protected] was removed from [email protected] mailbox
The following email address smtp:[email protected] was removed from [email protected] mailbox
The following email address smtp:[email protected] was removed from [email protected] mailbox

从所有邮箱中批量删除主 SMTP 地址

如果不添加新的主电子邮件地址,则无法删除主 SMTP 地址。使用 PowerShell 脚本从所有邮箱删除具有特定域名后缀的所有主 SMTP 地址而不删除其他电子邮件地址。

在此示例中,它将删除域为 (a-d.site) 的所有主 SMTP 电子邮件地址。然后,它将为所有邮箱添加一个新的主电子邮件地址和另一个新域(m365pilot.com)

  1. 第 3 行中输入新的域名
  2. 运行以下 PowerShell 脚本
$Mailboxes = Get-Mailbox -Filter { IsDirSynced -eq $false } -ResultSize Unlimited
foreach ($Mailbox in $Mailboxes) {
    $NewAddress = $Mailbox.Alias + "@m365pilot.com"
    if ($Mailbox.PrimarySmtpAddress -notlike "$NewAddress") {
        Set-Mailbox -Identity $Mailbox.Alias -WindowsEmailAddress $NewAddress
        Write-Host "Changed primary SMTP address $($Mailbox.PrimarySmtpAddress) to $NewAddress" -ForegroundColor Green
    }
    else {
        Write-Host "Primary SMTP address $NewAddress is already set for $($Mailbox.PrimarySmtpAddress)" -ForegroundColor Yellow
    }
}

PowerShell 脚本结果:

  • 将当前主电子邮件地址替换为域名后缀 m365pilot.com
  • 它不会删除以前的主 SMTP 地址,而是将其更改为别名 (smtp) 电子邮件地址。
  • 所有其他现有电子邮件地址(例如邮箱的代理、SIP 或 x500 电子邮件地址)都将保留。

就是这样!

了解更多:如何删除完全访问邮箱权限 »

结论

您了解了如何在 Microsoft 365 中使用 PowerShell 删除电子邮件地址。使用 Exchange 管理中心或 PowerShell 从单个邮箱中删除多个电子邮件地址。但如果您必须检查多个邮箱,使用 PowerShell 会更快。

您喜欢这篇文章吗?您可能还喜欢如何从 Microsoft 365 邮箱删除邮件项目。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯