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

Jacki

在 Exchange Server/Exchange Online 中将共享邮箱转换为用户邮箱的最快方法是使用 PowerShell。这是因为您可以为单个用户或多个用户进行转换。在本文中,您将了解如何使用 PowerShell 将用户邮箱转换为共享邮箱。

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

  • 共享邮箱已创建,但它应该是用户邮箱。
  • 使用凭据访问用户邮箱。

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

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

假设您想要导出所有邮箱,请阅读文章使用 PowerShell 获取 Exchange 中所有用户的邮箱大小。

转换为不同的邮箱类型

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

  • 常规(本文)
  • 房间
  • 设备
  • 共享

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

[PS] C:>Set-Mailbox "Info" -Type Regular

[PS] C:>Set-Mailbox "[email protected]" -Type Regular

验证转换后的邮箱类型

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

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

Name RecipientTypeDetails
---- --------------------
Info UserMailbox

[PS] C:>Get-Mailbox -Identity "[email protected]" | Format-Table Name, RecipientTypeDetails

Name RecipientTypeDetails
---- --------------------
Info UserMailbox

一切看起来都很棒!

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

阅读更多:在 Microsoft 365 中硬删除邮箱而不删除用户帐户

  1. CSV 文件
  2. TXT文件

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

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

1.准备用户邮箱CSV文件

开始微软Excel并写电子邮件在左上角单元格 (A1) 中。在单元格 A1 下方写入您想要转换为用户邮箱的所有共享邮箱。写入共享邮箱的显示名称或电子邮件地址。转换共享邮箱时两者都可以使用。

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

将其另存为文件夹中的 CSV 文件温度(中:)用名字开车转换为用户.csv

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

2.检查CSV文件中的内容

以管理员身份运行 Exchange 命令行管理程序。运行导入-CSVcmdlet 来验证内容在 PowerShell 中是否可读。

[PS] C:>Import-Csv "C:tempconvert_to_user.csv"

Email          
-----          
Boris Campbell 
Edward Lincoln 
Mohammad Fistak
Jenny Brooks   
Grace Rees     

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

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

Name            RecipientTypeDetails
----            --------------------
Boris Campbell         SharedMailbox
Edward Lincoln         SharedMailbox
Mohammad Fistak        SharedMailbox
Jenny Brooks           SharedMailbox
Grace Rees               UserMailbox

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

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

Name            RecipientTypeDetails
----            --------------------
Boris Campbell         SharedMailbox
Edward Lincoln         SharedMailbox
Mohammad Fistak        SharedMailbox
Jenny Brooks           SharedMailbox

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

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

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

  • 如果找不到邮箱
  • 已是用户邮箱
  • 转换为用户邮箱成功
$MailboxNames = "C:tempconvert_to_user.csv"

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

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

        $UpdatedMailbox = Get-Mailbox -Identity $Email

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

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

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

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

Name            RecipientTypeDetails
----            --------------------
Boris Campbell           UserMailbox
Edward Lincoln           UserMailbox
Mohammad Fistak          UserMailbox
Jenny Brooks             UserMailbox

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

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

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

1.准备用户邮箱TXT文件

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

2.检查TXT文件内容

运行获取内容cmdlet,包括 Get-Mailbox cmdlet,用于检查当前邮箱类型。

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

Name            RecipientTypeDetails
----            --------------------
Boris Campbell         SharedMailbox
Edward Lincoln         SharedMailbox
Mohammad Fistak        SharedMailbox
Grace Rees             SharedMailbox

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

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

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

  • 如果找不到邮箱
  • 已是用户邮箱
  • 转换为用户邮箱成功
$MailboxNames = Get-Content "C:tempconvert_to_user.txt"

foreach ($MailboxName in $MailboxNames) {
    $Mailbox = Get-Mailbox -Identity $MailboxName -ErrorAction SilentlyContinue
    
    if ($null -eq $Mailbox) {
        Write-Host "Mailbox '$MailboxName' not found." -ForegroundColor Red
    }
    elseif ($Mailbox.RecipientTypeDetails -eq "UserMailbox") {
        Write-Host "Mailbox '$MailboxName' is already a user mailbox." -ForegroundColor Cyan
    }
    else {
        Set-Mailbox -Identity $MailboxName -Type Regular -ErrorAction SilentlyContinue
        
        $UpdatedMailbox = Get-Mailbox -Identity $MailboxName
        
        if ($UpdatedMailbox.RecipientTypeDetails -eq "UserMailbox") {
            Write-Host "Mailbox '$MailboxName' converted to user mailbox successfully." -ForegroundColor Green
        }
        else {
            Write-Host "Failed to convert mailbox '$MailboxName' to user mailbox." -ForegroundColor Red
        }
    }
}

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

最好进行最终检查并验证它是否显示类型用户邮箱

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

Name            RecipientTypeDetails
----            --------------------
Boris Campbell           UserMailbox
Edward Lincoln           UserMailbox
Mohammad Fistak          UserMailbox
Grace Rees               UserMailbox

就是这样!

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

结论

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

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

您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 在 Office 365 中获取共享邮箱大小。不要忘记关注我们并分享这篇文章。