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

[玩转系统] 使用 PowerShell 管理用户邮箱

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

使用 PowerShell 管理用户邮箱


在本文中,我们将向您展示如何使用 PowerShell 管理 Microsoft 365 用户邮箱。了解如何创建新的用户邮箱、管理不同的邮箱权限、导出邮箱信息、将用户邮箱转换为其他类型以及删除邮箱。

Microsoft 365 邮箱类型

Microsoft 365 中有四种不同的邮箱类型:

  1. 用户邮箱
  2. 共享邮箱
  3. 客房邮箱
  4. 设备邮箱

在本文中,我们将介绍如何使用 PowerShell 管理常规用户邮箱

连接到 Exchange Online PowerShell

为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。

以管理员身份打开 Windows PowerShell 并运行以下 cmdlet。

Connect-ExchangeOnline

登录您的帐户并输入密码。

[玩转系统] 使用 PowerShell 管理用户邮箱

1.创建新用户邮箱

普通用户邮箱是一种特殊类型的 Exchange 邮箱。您必须使用 Microsoft 365 管理中心或 Exchange Online PowerShell 创建用户邮箱。我们将仅显示 PowerShell 命令。

运行 New-Mailbox cmdlet 并填写以下参数的信息:

  • 别名
  • 姓名
  • 显示名称
  • MicrosoftOnlineServicesID(用户电子邮件地址)

以下 PowerShell 命令将创建一个名为 Kelly Test 的新用户邮箱。我们添加了参数-RestetPasswordOnNextLogon,因此用户首次登录 Microsoft 365 时需要重置密码。

New-Mailbox -Alias "Kelly1" -Name "KellyTest" -FirstName "Kelly" -LastName "Test" -DisplayName "Kelly Test" -MicrosoftOnlineServicesID "[email protected]" -Password (ConvertTo-SecureString -String 'P@s$w0rd' -AsPlainText -Force) -ResetPasswordOnNextLogon $true

PowerShell 输出显示您创建的新用户邮箱以及通知您需要许可证的警告。

PS C:\> New-Mailbox -Alias "Kelly1" -Name "KellyTest" -FirstName "Kelly" -LastName "Test" -DisplayName "Kelly Test" -MicrosoftOnlineServicesID "[email protected]" -Password (ConvertTo-SecureString -String 'P@s$w0rd' -AsPlainText -Force) -ResetPasswordOnNextLogon $true

Name                      Alias           Database                       ProhibitSendQuota   
----                      -----           --------                       -----------------   
KellyTest                 Kelly1          EURPR02DG514-db460             99 GB (106,300,44...
WARNING: After you create a new mailbox, you must go to the Office 365 Admin Center and assign 
the mailbox a license, or it will be disabled after the grace period.

注意:请记住在 30 天内向该新用户分配许可证以激活该邮箱。

2.管理用户邮箱权限

您可以向其他许可用户授予对另一个 Microsoft 365 用户邮箱的不同权限:

  • 读取和管理权限(完全访问)
  • 发送为权限
  • 代表权限发送

这意味着您可以添加其他许可用户并授予他们对新用户邮箱的权限。

当我们为用户分配对另一个用户邮箱的“完全访问”权限时,该邮箱会自动添加到该用户的 Outlook 邮件配置文件中。此功能被描述为AutoMap,默认情况下处于启用状态。

分配完全访问权限用户邮箱

我们将运行 Add-MailboxPermission cmdlet 来管理邮箱的完全访问权限。

注意:您必须拥有许可的用户邮箱才能管理权限。

PowerShell 命令语法。

Add-MailboxPermissions "User Mailbox" -User "Mail Recipient" -AccessRights FullAccess -InheritanceType All

运行以下 PowerShell 命令将邮箱分配给用户邮箱。

Add-MailboxPermission "User Test" -User "David Kent" -AccessRights FullAccess -InheritanceType all

PowerShell 输出显示您已成功向特定用户分配完全访问权限

PS C:\> Add-MailboxPermission "User Test" -User "David Kent" -AccessRights FullAccess -InheritanceType all

Identity User                 AccessRights IsInherited Deny 
-------- ----                 ------------ ----------- ---- 
UserTest S-1-5-21-70143928... {FullAccess} False    False

分配完全访问权限用户邮箱而不使用自动映射

我们想要为特定用户分配对另一个用户邮箱的“完全访问”权限。您可以在分配权限时禁用AutoMap选项。在这种情况下,我们不希望用户邮箱自动添加到特定用户的 Outlook 配置文件中。

因此,您必须添加值为 $False 的 PowerShell 参数 -AutoMapping

运行以下 PowerShell 命令,向用户“David Kent”授予对其他用户邮箱的完全访问权限,而无需自动映射

Add-MailboxPermission "User Test" -User "David Kent" -AccessRights FullAccess -InheritanceType All -AutoMapping $False

PowerShell 输出显示您已成功分配对用户邮箱的完全访问权限。

PS C:\> Add-MailboxPermission "User Test" -User "David Kent" -AccessRights FullAccess -InheritanceType All -AutoMapping $False

Identity             User                 AccessRights                       IsInherited Deny 
--------             ----                 ------------                       ----------- ---- 
UserTest             S-1-5-21-70143928... {FullAccess}                       False       False

批量分配完全访问权限用户邮箱,无需自动映射

您还可以批量分配单个用户邮箱 (David Kent) 对所有用户邮箱的完全访问权限。我们还将添加参数-Automapping以禁用 Outlook 中的自动映射。

使用以下 PowerShell 命令为特定用户分配所有 Office 365 用户邮箱的完全访问权限。

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | Add-MailboxPermission -User "David Kent" -AccessRights FullAccess -InheritanceType All -AutoMapping $False

PowerShell 输出将如下例所示。

PS C:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | Add-MailboxPermission -User "David Kent" -AccessRights FullAccess -InheritanceType All -AutoMapping $False

Identity             User                 AccessRights IsInherited Deny 
--------             ----                 ------------ ----------- ---- 
ea2b7e6a-fb01-42e... S-1-5-21-70143928... {FullAccess} False       False
d912b0fc-6f7e-4ec... S-1-5-21-70143928... {FullAccess} False       False
eec2668a-0773-494... S-1-5-21-70143928... {FullAccess} False       False
fd199cb4-2ebf-417... S-1-5-21-70143928... {FullAccess} False       False
fa956d8c-87df-4cd... S-1-5-21-70143928... {FullAccess} False       False
d89be5ce-6495-400... S-1-5-21-70143928... {FullAccess} False       False
a9532b30-4edb-4b6... S-1-5-21-70143928... {FullAccess} False       False
b602b148-2fcf-435... S-1-5-21-70143928... {FullAccess} False       False
3bb176aa-d0ba-47f... S-1-5-21-70143928... {FullAccess} False       False
41377e9c-dc47-46c... S-1-5-21-70143928... {FullAccess} False       False
KellyTest            S-1-5-21-70143928... {FullAccess} False       False

删除用户邮箱的完全访问权限

假设您犯了一个错误,想要删除用户邮箱的完全访问权限。我们将运行Remove-MailboxPermission cmdlet 以删除用户邮箱的权限。

PowerShell 命令语法。

Remove-MailboxPermission "User Mailbox" -AccessRights "The type of permissions" -User "Recipient"

使用以下 PowerShell 命令删除用户邮箱的完全访问权限。

Remove-MailboxPermission "Brenda Smith" -AccessRights FullAccess -User "David Kent"

要验证您是否从此特定用户邮箱中删除了用户的完全访问权限,请运行Get-MailboxPermission

运行以下 PowerShell 命令可查看单个用户邮箱的所有完全访问权限。

Get-MailboxPermission "Brenda Smith" | Where-Object { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | Select-Object Identity, User, AccessRights

如果 PowerShell 输出为空,则表明您尚未为任何邮箱分配“完全访问”权限。

分配发送为权限用户邮箱

您可以向常规用户邮箱分配发送As权限。在我们的示例中,我们希望向用户邮箱 (KellyTest) 授予另一个用户邮箱 (Brenda Smith) 的“发送为”权限。

PowerShell 命令语法。

Add-RecipientPermission "User Mailbox" -Trustee "Mail Recipient" -AccessRights SendAs -Confirm:$False

使用下面的 PowerShell 示例为用户邮箱分配“发送为”权限。

Add-RecipientPermission "Brenda Smith" -Trustee "KellyTest" -AccessRights SendAs -Confirm:$False

PowerShell 输出显示。

PS C:\> Add-RecipientPermission "Brenda Smith" -Trustee "KellyTest" -AccessRights SendAs -Confirm:$False

Identity                             Trustee   AccessControlType AccessRights Inherited
--------                             -------   ----------------- ------------ ---------
d912b0fc-6f7e-4ec2-a9e4-854ed27a511a KellyTest Allow             {SendAs}     False    

批量分配发送为权限的用户邮箱

您还可以在一个 PowerShell 命令中将特定用户的“发送为”权限分配给所有用户邮箱。在我们的示例中,我们希望将用户邮箱 (Brenda Smith) 分配给所有 Office 365 用户邮箱。

运行以下 PowerShell 命令示例。

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | Add-RecipientPermission -Trustee "Brenda Smith" -AccessRights SendAs -Confirm:$False

PowerShell 输出显示分配了“发送为”权限的所有用户邮箱。

PS C:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | Add-RecipientPermission -Trustee "Brenda Smith" -AccessRights SendAs -Confirm:$False

Identity                             Trustee                              AccessControlType
--------                             -------                              -----------------
ea2b7e6a-fb01-42e3-9fb8-ccf13a5f2e67 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
d912b0fc-6f7e-4ec2-a9e4-854ed27a511a d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
eec2668a-0773-4947-93ba-2223f6acfe55 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
fd199cb4-2ebf-4171-96e2-12fd75453e39 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
fa956d8c-87df-4cd4-ac2a-ac1f3d7cac8b d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
d89be5ce-6495-4009-b61b-81126c239c34 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
a9532b30-4edb-4b66-a3b0-6ac972a6065b d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
b602b148-2fcf-435a-9d34-ce72c3a8c748 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
3bb176aa-d0ba-47f7-aecc-f4837593006e d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow            
KellyTest                            d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Allow         

删除发送为权限的用户邮箱

如果您犯了一个错误,并且不想将用户邮箱 (Brenda Smith) 的“发送为”权限授予另一个用户邮箱 (David Kent),您可以将其删除。

让我们展示如何删除单用户邮箱的代理发送权限。

PowerShell 命令语法。

Remove-RecipientPermission "User Mailbox" -AccessRights "The type of permissions" -Trustee "Recipient" -Confirm:$False

运行 PowerShell 命令示例以从 Brenda Smith 的用户邮箱中删除“发送为”权限。

Remove-RecipientPermission "Brenda Smith" -AccessRights SendAs -Trustee "David Kent" -Confirm:$False

要验证您已从 Brenda Smith 的用户邮箱中删除了“代理发送”权限,请运行 Get-RecipientPermission

运行以下 PowerShell 命令以查看单个用户邮箱 (Brenda Smith) 的所有发送为权限。

Get-RecipientPermission "Brenda Smith" | Where-Object {($_.IsInherited -eq $False) -and -not ($_.Trustee -like "NT AUTHORITY\SELF") } | Select-Object Trustee, AccessRights

如果 PowerShell 输出为空,则表明您尚未为任何邮箱分配“发送为”权限。

3.显示用户邮箱信息

运行以下 PowerShell 命令以获取所有许可用户邮箱的列表。

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailBox")' | Select Name,Alias

PowerShell 输出如下例所示。

PS C:\> Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailBox")' | Select Name,Alias

Name                                 Alias         
----                                 -----         
ea2b7e6a-fb01-42e3-9fb8-ccf13a5f2e67 Stephen.Hunter
d912b0fc-6f7e-4ec2-a9e4-854ed27a511a Brenda.Smith  
eec2668a-0773-4947-93ba-2223f6acfe55 David.Kent    
fd199cb4-2ebf-4171-96e2-12fd75453e39 Susan.Brown   
fa956d8c-87df-4cd4-ac2a-ac1f3d7cac8b Chris.Lucas   
d89be5ce-6495-4009-b61b-81126c239c34 George.Wilson 
a9532b30-4edb-4b66-a3b0-6ac972a6065b Jill.Bates    
b602b148-2fcf-435a-9d34-ce72c3a8c748 Diana.Baker   
3bb176aa-d0ba-47f7-aecc-f4837593006e Mary.James    
41377e9c-dc47-46c0-b4a5-1d5bbdcb5cc5 Amanda.Hansen 
KellyTest                            Kelly1  

将许可用户邮箱列表导出到 CSV 文件

您可以将所有现有用户邮箱的信息导出到单个 CSV 文件。这样,您就可以轻松搜索不同的用户邮箱。

运行以下 PowerShell 命令将所有用户邮箱的列表导出到 CSV 文件。

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailbox")' | Select-Object DisplayName,Alias,RecipientTypeDetails,PrimarySmtpAddress | Export-CSV "C:\temp\User Mailboxes Info.CSV" -NoTypeInformation -Encoding UTF8

导出信息后,您可以在 C:\temp 文件夹中找到 CSV 文件。

使用 Microsoft Excel 等应用程序打开 CSV 文件以查看结果。

[玩转系统] 使用 PowerShell 管理用户邮箱

显示用户邮箱信息权限

显示有关完全访问代理发送权限的信息:

  1. PowerShell cmdlet Get-MailboxPermission 显示“完全访问”权限
  2. PowerShell cmdlet Get-RecipientPermission 显示“发送为”权限

这两个 PowerShell 命令的默认输出显示冗余信息,导致很难清楚地了解 Exchange 邮箱权限。为此,我们会对冗余信息进行过滤和去除。

在我们的示例中,我们希望查看有关 Brenda Smith 的用户邮箱的信息。

1. 显示用户邮箱的完全访问权限

运行以下 PowerShell 命令以显示用户邮箱的所有完全访问权限。

Get-MailboxPermission "Brenda Smith" | Where-Object { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | Select-Object Identity, User, AccessRights

PowerShell 输出显示用户邮箱 (Brenda Smith) 的所有完全访问权限。

PS C:\> Get-MailboxPermission "Brenda Smith" | Where-Object { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | Select-Object Identity, User, AccessRights

Identity                             User                    AccessRights
--------                             ----                    ------------
d912b0fc-6f7e-4ec2-a9e4-854ed27a511a [email protected] {FullAccess}

2. 显示用户邮箱的发送为权限

运行以下 PowerShell 命令以显示用户邮箱的所有发送为权限。

Get-RecipientPermission "Brenda Smith" | Where-Object {($_.IsInherited -eq $False) -and -not ($_.Trustee -like "NT AUTHORITY\SELF") } | Select-Object Trustee, AccessRights

PowerShell 输出显示用户邮箱 (Brenda Smith) 的所有发送为权限。

PS C:\> Get-RecipientPermission "Brenda Smith" | Where-Object {($_.IsInherited -eq $False) -and -not ($_.Trustee -like "NT AUTHORITY\SELF") } | Select-Object Trustee, AccessRights

Trustee                    AccessRights
-------                    ------------
[email protected]  {SendAs}    
[email protected] {SendAs}    
[email protected]     {SendAs}  

4.转换用户邮箱

您可以轻松地将许可用户邮箱转换为共享、房间或设备邮箱。

注意:如果没有分配 Exchange Online 许可证,您将无法转换用户邮箱。

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

运行 PowerShell 命令将用户邮箱转换为共享邮箱。

Get-Mailbox "KellyTest" | Set-Mailbox -Type Shared

将用户邮箱转换为房间邮箱

使用PowerShell命令将用户邮箱转换为房间邮箱。

Get-Mailbox "KellyTest" | Set-Mailbox -Type Room

将用户邮箱转换为设备邮箱

运行PowerShell命令将用户邮箱转换为设备邮箱。

Get-Mailbox "KellyTest" | Set-Mailbox -Type Equipment

5.删除用户邮箱

您可以使用 PowerShell 轻松软删除特定用户邮箱。这意味着删除的用户将在 Azure AD 回收站中保留 30 天,然后才会被永久删除。您可以使用 PowerShell 在管理 Office 365 回收站中还原已删除的用户。

软删除用户邮箱

您可以软删除单个用户邮箱。

PowerShell命令语法:

Remove-Mailbox -Identity "<User Identity>" -Confirm:$False

PowerShell 命令示例:

Remove-Mailbox -Identity "KellyTest" -Confirm:$False

批量软删除用户邮箱

运行以下 PowerShell 命令以批量软删除用户邮箱。

Get-Mailbox -Filter '(RecipientTypeDetails -eq "UserMailBox")' -ResultSize Unlimited | Remove-Mailbox -Confirm:$False

硬删除用户邮箱

如果您想永久硬删除邮箱,则需要执行几个步骤。请阅读使用 PowerShell 强制删除 Microsoft 365 邮箱一文来了解更多相关信息。

这是否有助于您使用 PowerShell 管理 Office 365 用户邮箱?

了解更多:导出 Microsoft 365 用户许可证 »

结论

您学习了如何创建新的常规用户邮箱并使用 PowerShell 管理权限。导出所有用户邮箱的信息后,您可以轻松地将常规邮箱转换为其他类型。使用PowerShell,您可以批量软删除用户邮箱。

您喜欢这篇文章吗?您可能还喜欢为 Microsoft 365 用户重置 MFA。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯