使用 PowerShell 管理邮箱权限 |办公室365
在本文中,我们将回顾如何使用 PowerShell 命令来管理 Exchange Online 环境中的完全访问邮箱权限。
连接到 Exchange Online PowerShell
为了能够运行本文中指定的 PowerShell 命令,您需要连接到 Exchange Online PowerShell。
以管理员身份启动 Windows PowerShell 并运行 cmdlet Connect-ExchangeOnline。
Connect-ExchangeOnline邮箱权限
邮箱权限包括两类:
- 完全访问权限 - 允许其他收件人查看所有邮箱内容。
- 允许使用其他收件人姓名发送电子邮件(“发送为”和“代表发送”)。
某些邮箱权限可以由用户自己分配(通过使用 Outlook 或 OWA 界面),而使用其他收件人名称发送电子邮件的权限只能通过使用 PowerShell 界面来分配。
使用PowerShell管理邮箱权限的一个显着优势是,管理员可以远程为用户创建所需的设置(帮助用户并防止误配置),并利用PowerShell的强大功能,以批量模式执行命令(执行用户的配置设置)。多个邮箱)。
邮箱权限 PowerShell 命令基本结构
PowerShell 邮箱权限命令的基本结构是使用以下语法编写的:
在我们的示例中,我们希望让 Alice 能够获得收听经理邮箱的完全访问权限。 -Identity 参数与想要“共享”其邮箱的用户(向其他用户提供访问其邮箱内容的选项)相关,而 -User 参数表示将获得邮箱访问权限的用户。
1.分配邮箱权限
1.1 - 为邮箱分配“完全访问”权限
PowerShell命令语法:
Add-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccess -InheritanceType AllPowerShell 命令示例:
Add-MailboxPermission John -User Suzan -AccessRights FullAccess -InheritanceType All1.2 - 为邮箱分配“发送为”权限
PowerShell命令语法:
Add-RecipientPermission <Identity> -AccessRights SendAs -Trustee <Identity>PowerShell 命令示例:
Add-RecipientPermission John -AccessRights SendAs -Trustee Suzan为了避免需要确认,我们可以添加选项:“-Confirm:$False”。
Add-RecipientPermission John -Trustee Suzan -AccessRights SendAs -Confirm:$False1.3 - 为所有邮箱分配“发送为”权限(批量模式)
PowerShell命令语法:
$MBXS = Get-Recipient -RecipientType UserMailbox
ForEach ($MBX in $MBXS) {
Add-RecipientPermission $MBX.name -AccessRights SendAs -Trustee <User Principal Name> -Confirm:$False
}
Get-RecipientPermission | Where { ($_.Trustee -ne 'nt authority\self') -and ($_.Trustee -ne 'Null sid') } }PowerShell 命令示例:
$MBXS = Get-Recipient -RecipientType UserMailbox
ForEach ($MBX in $MBXS) {
Add-RecipientPermission $MBX.name -AccessRights SendAs -Trustee John@o365info.com -Confirm:$False
}
Get-RecipientPermission | Where { ($_.Trustee -ne 'nt authority\self') -and ($_.Trustee -ne 'Null sid') } }1.4 - 为通讯组中每个成员的收件人分配“发送为”权限
PowerShell命令语法:
$DL = Get-DistributionGroupMember
Foreach ($item in $DL) {
Add-RecipientPermission $item.name -AccessRights SendAs -Trustee <Identity> -Confirm:$False
}PowerShell 命令示例:
$DL = Get-DistributionGroupMember DL-01
Foreach ($item in $DL) {
Add-RecipientPermission $item.name -AccessRights SendAs -Trustee Suzan -Confirm:$False
}1.5 - 为特定收件人的通讯组中的每个成员分配“发送为”权限
PowerShell命令语法:
$DL = Get-DistributionGroupMember
Foreach ($item in $DL) {
Add-RecipientPermission <Identity> -AccessRights SendAs -Trustee $item.name -Confirm:$False
}PowerShell 命令示例:
$DL = Get-DistributionGroupMember DL-01
Foreach ($item in $DL) {
Add-RecipientPermission Suzan -AccessRights SendAs -Trustee $item.name -Confirm:$False
}1.6 - 为邮箱分配“代表发送”权限
PowerShell命令语法:
Set-Mailbox <Identity> -GrantSendOnBehalfTo <Identity>PowerShell 命令示例:
Set-Mailbox -Identity John -GrantSendOnBehalfTo Suzan1.7 - 为所有邮箱分配“完全访问”权限(批量模式)
PowerShell命令语法:
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -eq 'UserMailbox'} | Add-MailboxPermission -User <Identity> -AccessRights FullAccess -InheritanceType AllPowerShell 命令示例:
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -eq 'UserMailbox'} | Add-MailboxPermission -User John -AccessRights FullAccess -InheritanceType All2.分配完全访问权限和AutoMap
2.1 - 为通讯组+AutoMap分配“完全访问”权限
PowerShell命令语法:
$DL = Get-DistributionGroupMember <Distribution Group> | Select-Object -ExpandProperty Name
ForEach ($Member in $DL ) {
Add-MailboxPermission -Identity <Identity> -User $S -AccessRights FullAccess -InheritanceType All
}PowerShell 命令示例:
$DL = Get-DistributionGroupMember "Assistants Group" | Select-Object -ExpandProperty Name
ForEach ($Member in $DL ) {
Add-MailboxPermission -Identity "FL1 Room1" -User $S -AccessRights FullAccess -InheritanceType All
}2.2 - 为所有邮箱分配“完全访问”权限(批量模式)并禁用 AutoMap
PowerShell命令语法:
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -eq 'UserMailbox'} | Add-Mailboxpermission -User <Identity> -AccessRights FullAccess -InheritanceType All -Automapping $FalsePowerShell 命令示例:
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -eq 'UserMailbox'} | Add-Mailboxpermission -User John -AccessRights FullAccess -InheritanceType All -Automapping $False2.3 - 为特定用户分配“完全访问”权限并禁用 AutoMap
PowerShell命令语法:
Add-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccess -InheritanceType All -AutoMapping $FalsePowerShell 命令示例:
Add-MailboxPermission John -User Suzan -AccessRights FullAccess -InheritanceType All -AutoMapping $False3. 显示邮箱的权限
3.1 - 显示邮箱的“完全访问”权限
PowerShell命令语法:
Get-MailboxPermission <Identity>PowerShell 命令示例:
Get-MailboxPermission John为了提高输出的质量,我们可以使用额外的 PowerShell 参数来“清理”不必要的信息:
Get-MailboxPermission John | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select Identity,user,AccessRights3.2 - 显示邮箱的“发送为”权限
PowerShell命令语法:
Get-RecipientPermission <Identity>PowerShell 命令示例:
Get-RecipientPermission John为了提高输出的质量,我们可以使用额外的 PowerShell 参数来“清理”不必要的信息:
Get-RecipientPermission John | Where { ($_.IsInherited -eq $False) -and -not ($_.Trustee -like “NT AUTHORITY\SELF”) } | Select Trustee,AccessControlType,AccessRights3.3 - 显示邮箱的“代表发送”权限
PowerShell命令语法:
Get-Mailbox <Identity>PowerShell 命令示例:
Get-Mailbox John为了提高输出的质量,我们可以使用额外的 PowerShell 参数来“清理”不必要的信息:
Get-RecipientPermission John | Where { ($_.IsInherited -eq $False) -and -not ($_.Trustee -like “NT AUTHORITY\SELF”) } | Select Trustee, AccessControlType, AccessRights3.4 - 查看您在组织中配置的所有“发送为权限”
PowerShell命令语法:
Get-RecipientPermission | where {($_.Trustee -ne 'nt authority\self') -and ($_.Trustee -ne 'Null sid')} | select Identity,Trustee,AccessRights3.5 - 显示对其他收件人具有完全访问权限的收件人列表
PowerShell命令语法:
$a = Get-Mailbox $a |Get-MailboxPermission | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like “NT AUTHORITY\SELF”) -and -not ($_.User -like '*Discovery Management*') } | Select Identity, user, AccessRights4. 撤销权限
4.1 - 撤销“完全访问”权限
PowerShell命令语法:
Remove-MailboxPermission <Identity> -User <Identity> -AccessRights FullAccessPowerShell 命令示例:
Remove-MailboxPermission John -User Suzan -AccessRights FullAccess为了避免需要确认,我们可以添加选项:“-Confirm:$False”。
Remove-MailboxPermission John -User Suzan -AccessRights FullAccess -Confirm:$False4.2 - 撤销“发送为”权限
PowerShell命令语法:
Remove-RecipientPermission <Identity> -AccessRights SendAs -Trustee <Identity>PowerShell 命令示例:
Remove-RecipientPermission John -AccessRights SendAs -Trustee Suzan为了避免需要确认,我们可以添加选项:“-Confirm:$False”。
Remove-RecipientPermission John -AccessRights SendAs -Trustee Suzan -Confirm:$False
