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

[玩转系统] 使用 PowerShell 批量创建共享邮箱

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

使用 PowerShell 批量创建共享邮箱


若要在 Exchange Online 中添加共享邮箱,您可以在 Microsoft 365 管理中心中手动执行此操作。但使用 PowerShell 脚本创建多个共享邮箱并添加具有访问权限的用户要快得多。在本文中,您将了解如何使用 PowerShell 在 Exchange Online 中批量共享邮箱。

连接到 Exchange Online

在下一步中创建共享邮箱之前,您必须安装并连接到 Exchange Online PowerShell。以管理员身份启动 Windows PowerShell 并运行以下 cmdlet。

Connect-ExchangeOnline

使用 PowerShell 创建批量共享邮箱

对于此步骤,您必须创建一个 CSV 文件以在 PowerShell 中用作源文件。最初,我们希望保持简单并开始仅创建批量共享邮箱

创建单个 CSV 文件

首先,我们需要将数据输入记事本并将其保存为 CSV 文件。在我们的示例中,它在 C:\temp 中保存为 info.csv

注意:共享邮箱的名称必须是唯一的。

您应该对 CSV 文件使用以下格式:

  • 名称:共享邮箱的唯一电子邮件地址
  • DisplayName:共享邮箱的名称

[玩转系统] 使用 PowerShell 批量创建共享邮箱

使用 Import-Csv cmdlet 检查 CSV 文件

以管理员身份运行 Windows PowerShell。确保 PowerShell 可以读取该文件,运行 Import-Csv cmdlet。

Import-Csv "C:\temp\info.csv"

这就是我们示例中的样子。

PS C:\> Import-Csv "C:\temp\info.csv"

Name        DisplayName
----        -----------
Finance1    Finance Team
Marketing1  Marketing Team
HR1         HR Department
IT1         IT Department
Security1   Security Department
Management1 Management Team
Design1     Design Team
Sales1      Sales Team
Production1 Product Team
RD1         Research and Development

运行 PowerShell 脚本在 Exchange Online 中创建批量共享邮箱

使用以下 PowerShell 脚本在 Exchange Online 中创建新的共享邮箱。

# Import CSV file
$Datas = Import-Csv "C:\temp\info.csv"

# Get all recipients
$Recipients = Get-Recipient -ResultSize Unlimited | select Name

foreach ($Data in $Datas) {

    # Check if shared mailbox does not exist
    If (($Recipients | Where { $_.Name -eq $Data.Name }) -eq $Null) {

        # Create shared mailbox
        New-Mailbox -Name $Data.Name -DisplayName $Data.DisplayName -Shared
        Write-Host -f Green "Shared mailbox '$($Data.Name)' created successfully."
    }
    Else {
        Write-host -f Green "Shared Mailbox '$($Data.Name)' already exists."
    }
}

在 Microsoft 365 管理中心检查共享邮箱

您已成功在 PowerShell 中创建批量共享邮箱。您还可以检查在 Microsoft 365 管理中心中创建的共享邮箱。

结果如下图所示。

[玩转系统] 使用 PowerShell 批量创建共享邮箱

我们尚未将任何用户分配给这些共享邮箱。查看下一步,添加对每个共享邮箱具有完全访问权限的用户。

在 PowerShell 中创建具有用户访问权限的批量共享邮箱

对于此步骤,您必须创建一个包含更多数据的 CSV 文件,以用作 PowerShell 中的源文件。我们想要创建共享邮箱、导入多个用户并分配权限

创建 CSV 以与用户批量创建共享邮箱

您需要在 CSV 文件中输入以下数据格式:

  • 名称:共享邮箱的唯一电子邮件地址
  • DisplayName:共享邮箱的名称
  • 用户:活跃用户
  • 访问权限:完全访问权限

在我们的示例中,我们将数据输入记事本并将文件命名为 info.csv 并将其放置在 C:\temp 中。

[玩转系统] 使用 PowerShell 批量创建共享邮箱

使用 Import-Csv cmdlet 检查 CSV 文件

以管理员身份运行 Windows PowerShell。确保 PowerShell 可以读取该文件,运行 Import-Csv cmdlet。

Import-Csv "C:\temp\info.csv"

这就是我们示例中的样子。

PS C:\> Import-Csv "C:\temp\info.csv"

Name        DisplayName              User                                                AccessRights
----        -----------              ----                                                ------------
Finance1    Finance Team             Amanda Morgan;Stephen Hunter;Carol Baker            FullAccess
Marketing1  Marketing Team           Craig Hansen;Edward Jones                           FullAccess
HR1         HR Department            Edward Wilson;Emma Arnold;Nick Carlson;Lisa Philips FullAccess
IT1         IT Department            Piers Bower;Lisa Davies;Anna Welch;John Hamod       FullAccess
Security1   Security Department      Edward Wilson;Jonathan Fisher                       FullAccess
Management1 Management Team          Neil Graham;Sarah Coleman;Viola Simon               FullAccess
Design1     Design Team              Wallace Zheng;Abigail Hodges;Emma Arnold            FullAccess
Sales1      Sales Team               Edward Lincoln;Amanda Morgan;Stephen Hunter         FullAccess
Production1 Product Team             Kylie Davidson;Mary Walsh                           FullAccess
RD1         Research and Development Max Gibson;Curt Berry;Owen Simpson                  FullAccess

运行 PowerShell 脚本以在 Exchange Online 中批量创建具有用户访问权限的共享邮箱

运行以下 PowerShell 脚本以在 Exchange Online 中创建共享邮箱。您可以创建多个共享邮箱、添加现有用户并同时分配权限。

PowerShell 输出可让您知道共享邮箱是否已存在。如果 CSV 文件中的用户不正确,输出将通知您未找到该用户。它还不会将现有用户两次添加到同一共享邮箱。您将收到一条警告,指出该共享邮箱已具有用户访问权限。

# Import CSV file
$Datas = Import-Csv "C:\temp\info.csv"

# Get all recipients
$Recipients = Get-Recipient -ResultSize Unlimited | select Name

foreach ($Data in $Datas) {

    # Check if shared mailbox does not exist
    If (($Recipients | Where { $_.Name -eq $Data.Name }) -eq $Null) {

        # Create shared mailbox
        New-Mailbox -Name $Data.Name -DisplayName $Data.DisplayName -Shared
        Write-Host -f Green "Shared mailbox '$($Data.Name)' created successfully."
    }
    Else {
        Write-Host -f Green "Shared Mailbox '$($Data.Name)' already exists."
    }
    # Assign permissions on shared mailbox
    $Users = $Data.User -split ";"
    foreach ($User in $Users) {
        Add-MailboxPermission -Identity $Data.Name -User $User.Trim() -AccessRights $Data.AccessRights
    }
}

在 Microsoft 365 管理中心检查共享邮箱及其用户和权限

您将在 Microsoft 365 管理中心看到共享邮箱。如果单击每个共享邮箱,您将看到分配了多少用户及其权限。

[玩转系统] 使用 PowerShell 批量创建共享邮箱

如果您点击读取和管理权限,您将看到哪些用户被分配到共享邮箱。

[玩转系统] 使用 PowerShell 批量创建共享邮箱

您是否发现使用 PowerShell 脚本与用户批量创建共享邮箱并授予他们访问权限很容易吗?

了解更多:在 Exchange Online 中启用回复所有风暴保护 »

结论

您了解了如何使用 PowerShell 脚本和 CSV 文件创建批量共享邮箱。这是导入一千多个用户并将其访问权限分配给多个共享邮箱的最快方法。我们的最后一个 PowerShell 脚本允许您创建批量共享邮箱、向每个共享邮箱添加多个用户并授予他们访问权限。

您喜欢这篇文章吗?您可能还喜欢将已发送的邮件保存在共享邮箱中。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯