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

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

作者:精品下载站 日期:2024-12-14 18:43:21 浏览:14 分类:玩电脑

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


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

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

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

  • 共享邮箱已创建,但它应该是用户邮箱。

  • 使用凭据访问用户邮箱。

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

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

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

转换为不同的邮箱类型

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

  • 常规(本文)

  • 房间

  • 设备

  • 共享

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

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

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

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

验证转换后的邮箱类型

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

[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

一切看起来都很棒!

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

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

  1. CSV 文件

  2. TXT文件

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

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

1.准备用户邮箱CSV文件

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

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

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

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

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

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

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

2.检查CSV文件中的内容

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

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

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

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

[PS] C:\>Import-Csv "C:\temp\convert_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:\temp\convert_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:\temp\convert_to_user.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 "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:\temp\convert_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:\temp 中,命名为convert_to_user.txt。这次电子邮件没有显示在顶部。那是因为我们不需要它。

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

2.检查TXT文件内容

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

[PS] C:\>Get-Content "C:\temp\convert_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:\temp\convert_to_user.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 "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:\temp\convert_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 中获取共享邮箱大小。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯