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

[玩转系统] 使用 PowerShell 将用户邮箱转换为共享邮箱

作者:精品下载站 日期:2024-12-15 00:40:10 浏览:16 分类:玩电脑

使用 PowerShell 将用户邮箱转换为共享邮箱


您想要将用户邮箱转换为 Exchange Server/Exchange Online 中的共享邮箱。可以通过多种方法将用户邮箱转换为共享邮箱。其中之一位于 Exchange 管理中心。另一种方法是使用 PowerShell 将用户邮箱转换为共享邮箱。

为什么从用户邮箱转换为共享邮箱?

为什么要将用户邮箱转换为共享邮箱:

  • 您创建了一个用户邮箱,但它应该是一个共享邮箱。

  • 您不想许可用户邮箱。共享邮箱没有附加许可证/费用。

注意:无法将共享邮箱转换为本地 Exchange 管理中心中的用户邮箱。这仅适用于 Microsoft 365 Exchange 管理中心中的云邮箱。不要惊慌,因为 PowerShell 会完成工作。

重要提示:如果您的组织使用 Exchange 混合环境,您需要使用本地 Exchange 管理工具来管理您的邮箱。按照文章将用户邮箱转换为 Exchange 混合中的共享邮箱。

您想要导出所有用户邮箱和共享邮箱吗?阅读文章使用 PowerShell 获取 Exchange 中所有用户的邮箱大小。

转换为不同的邮箱类型

您想将邮箱设置为其他类型吗? Type 参数指定邮箱的类型。选择有效值之一:

  • 常规的

  • 房间

  • 设备

  • 分享(本文)

将用户邮箱转换为共享邮箱

以管理员身份运行 Exchange 命令行管理程序。运行 Set-Mailbox cmdlet 并指定用户邮箱。您可以填写邮箱的显示名称或电子邮件地址。运行 cmdlet 后,您将不会获得显示已成功的输出。

[PS] C:\>Set-Mailbox "Boris Campbell" -Type Shared

[PS] C:\>Set-Mailbox "boris.campbell@exoip.com" -Type Shared

验证转换后的邮箱类型

您如何知道将用户邮箱转换为共享邮箱是否有效?运行 Get-Mailbox cmdlet,它将显示输出。它将显示为SharedMailbox,如下所示。

[PS] C:\>Get-Mailbox -Identity "Boris Campbell" | Format-Table Name, RecipientTypeDetails

Name           RecipientTypeDetails
----           --------------------
Boris Campbell        SharedMailbox


[PS] C:\>Get-Mailbox -Identity "Boris.Campbell@exoip.com" | Format-Table Name, RecipientTypeDetails

Name           RecipientTypeDetails
----           --------------------
Boris Campbell        SharedMailbox

现在我们验证了邮箱并且一切看起来都很好,我们可以将问题标记为已解决!

批量将用户邮箱转换为共享邮箱

我们有一个项目正在进行,很多用户邮箱需要成为共享邮箱。我们在上一步中向您展示了如何使用 PowerShell 将用户邮箱转换为共享邮箱。

如果您有多个用户邮箱需要转换为共享邮箱怎么办? PowerShell 是完成工作最快、最可靠的方法。

有几种方法可以将用户邮箱批量转换为共享邮箱:

  1. CSV 文件

  2. TXT文件

使用 CSV 文件将用户邮箱批量转换为共享邮箱

按照以下步骤将用户邮箱转换为包含 CSV 文件的共享邮箱。

1.准备用户邮箱CSV文件

启动 Microsoft Excel 并在左上角单元格 (A1) 中写入电子邮件。在单元格 A1 下方写入您想要转换为共享邮箱的所有用户邮箱。写入用户邮箱的显示名称或电子邮件地址。转换用户邮箱时两者都将起作用。

在我们的示例中,写入了邮箱显示名称。

[玩转系统] 使用 PowerShell 将用户邮箱转换为共享邮箱

将其作为 CSV 文件保存在 (C:) 驱动器上的 temp 文件夹中,名称为 bulk.csv

[玩转系统] 使用 PowerShell 将用户邮箱转换为共享邮箱

使用您喜欢的文本编辑器打开 CSV 文件。例如,文本编辑器记事本,看看一切看起来都很棒。

[玩转系统] 使用 PowerShell 将用户邮箱转换为共享邮箱

准备好 CSV 文件后,下一步是使用 PowerShell 读取 CSV 文件内容。

2.检查CSV文件中的内容

以管理员身份运行 Exchange 命令行管理程序。运行 Import-Csv cmdlet 以验证内容在 PowerShell 中是否可读。

[PS] C:\>Import-Csv "C:\temp\bulk.csv"

Email
-----
Dylan Piper
Nicola Hunter
Piers Bower
Natalie Mitchell
Richard Grant

您可以从 CSV 文件检查当前邮箱类型。在我们的示例中,显示了不同类型的邮箱。

[PS] C:\>Import-Csv "C:\temp\bulk.csv" | foreach {Get-Mailbox -Identity $_.Email} | ft Name, RecipientTypeDetails

Name             RecipientTypeDetails
----             --------------------
Dylan Piper               UserMailbox
Nicola Hunter             UserMailbox
Piers Bower               UserMailbox
Natalie Mitchell          UserMailbox
Richard Grant           SharedMailbox

仅过滤用户邮箱,因为这些是我们要转换为共享邮箱的邮箱。

[PS] C:\>Import-Csv "C:\temp\bulk.csv" | foreach {Get-Mailbox -Identity $_.Email | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"}} | ft Name, RecipientTypeDetails

Name             RecipientTypeDetails
----             --------------------
Dylan Piper               UserMailbox
Nicola Hunter             UserMailbox
Piers Bower               UserMailbox
Natalie Mitchell          UserMailbox

3.使用PowerShell脚本将邮箱转换为共享邮箱

是时候将用户邮箱批量转换为共享邮箱了。运行以下 PowerShell 脚本以导入 CSV 和批量设置共享邮箱。

PowerShell 脚本将向您显示以下内容:

  • 如果找不到邮箱

  • 已经是共享邮箱

  • 已成功转换为共享邮箱

$MailboxNames = "C:\temp\bulk.csv"

Import-Csv $MailboxNames | foreach {
    $Email = $_.Email
    $Mailbox = Get-Mailbox -Identity $email -ErrorAction SilentlyContinue

    if ($mailbox -eq $null) {
        Write-Host "Mailbox '$email' not found." -ForegroundColor Red
    }
    elseif ($Mailbox.RecipientTypeDetails -eq "SharedMailbox") {
        Write-Host "Mailbox '$Email' is already a shared mailbox." -ForegroundColor Cyan
    }
    else {
        Set-Mailbox -Identity $Email -Type Shared -ErrorAction SilentlyContinue

        $UpdatedMailbox = Get-Mailbox -Identity $Email

        if ($UpdatedMailbox.RecipientTypeDetails -eq "SharedMailbox") {
            Write-Host "Mailbox '$Email' converted to a shared mailbox successfully." -ForegroundColor Green
        }
        else {
            Write-Host "Failed to convert mailbox '$Email' to a shared mailbox." -ForegroundColor Red
        }
    }
}

4. 验证转换后的邮箱类型

验证所有用户邮箱是否都转换为共享邮箱类型。

[PS] C:\>Import-Csv "C:\temp\bulk.csv" | foreach {Get-Mailbox -Identity $_.Email} | ft Name, RecipientTypeDetails

Name             RecipientTypeDetails
----             --------------------
Dylan Piper             SharedMailbox
Nicola Hunter           SharedMailbox
Piers Bower             SharedMailbox
Natalie Mitchell        SharedMailbox
Richard Grant           SharedMailbox

如果您想使用 TXT 文件而不是 CSV 文件,请阅读下一部分。

使用TXT文件批量将用户邮箱转换为共享邮箱

按照以下步骤将用户邮箱转换为包含 TXT 文件的共享邮箱。

1.准备用户邮箱TXT文件

将用户邮箱的显示名称或电子邮件地址放入文本文件中。将文本文件保存在 C:\temp 中,命名为bulk.txt。这次电子邮件没有显示在顶部。那是因为我们不需要它。

[玩转系统] 使用 PowerShell 将用户邮箱转换为共享邮箱

2.检查TXT文件内容

运行 Get-Content cmdlet(包括 Get-Mailbox cmdlet)以检查当前邮箱类型。

[PS] C:\>Get-Content "C:\temp\bulk.txt" | Get-Mailbox | Format-Table Name, RecipientTypeDetails

Name             RecipientTypeDetails
----             --------------------
Dylan Piper               UserMailbox
Nicola Hunter             UserMailbox
Piers Bower               UserMailbox
Natalie Mitchell          UserMailbox
Richard Grant             UserMailbox

3.使用PowerShell脚本将邮箱转换为共享邮箱

是时候将用户邮箱批量转换为共享邮箱了。运行以下 PowerShell 脚本以导入 TXT 文件并将邮箱批量设置为共享。

PowerShell 脚本将向您显示以下内容:

  • 如果找不到邮箱

  • 已经是共享邮箱

  • 已成功转换为共享邮箱

$MailboxNames = Get-Content "C:\temp\bulk.txt"

foreach ($MailboxName in $MailboxNames) {
    $Mailbox = Get-Mailbox -Identity $MailboxName -ErrorAction SilentlyContinue
    
    if ($Mailbox -eq $null) {
        Write-Host "Mailbox '$MailboxName' not found." -ForegroundColor Red
    }
    elseif ($Mailbox.RecipientTypeDetails -eq "SharedMailbox") {
        Write-Host "Mailbox '$MailboxName' is already a shared mailbox." -ForegroundColor Cyan
    }
    else {
        Set-Mailbox -Identity $MailboxName -Type Shared -ErrorAction SilentlyContinue

        $UpdatedMailbox = Get-Mailbox -Identity $MailboxName

        if ($UpdatedMailbox.RecipientTypeDetails -eq "SharedMailbox") {
            Write-Host "Mailbox '$MailboxName' converted to shared mailbox successfully." -ForegroundColor Green
        }
        else {
            Write-Host "Failed to convert mailbox '$MailboxName' to user mailbox." -ForegroundColor Red
        }
    }
}

4. 验证转换后的邮箱类型

最好进行最后检查并验证它是否显示共享邮箱类型。

[PS] C:\>Get-Content C:\temp\bulk.txt | Get-Mailbox | Format-Table Name, RecipientTypeDetails

Name             RecipientTypeDetails
----             --------------------
Dylan Piper             SharedMailbox
Nicola Hunter           SharedMailbox
Piers Bower             SharedMailbox
Natalie Mitchell        SharedMailbox
Richard Grant           SharedMailbox

就是这样!

您使用哪种方法将用户邮箱转换为共享邮箱?

结论

您学习了如何使用 PowerShell 将用户邮箱转换为共享邮箱。启动 Exchange 命令行管理程序或 Exchange Online PowerShell 并运行命令。之后,验证RecipientTypeDetails是否显示为SharedMailbox

批量设置邮箱比逐个运行设置的邮箱更快。很高兴知道您可以使用 CSV 文件或 TXT 文件将用户邮箱批量转换为共享邮箱。两种方法都很有效。

您喜欢这篇文章吗?您可能还喜欢阻止从共享邮箱登录。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯