Exchange Online 如何将一个用户的邮箱权限复制到另一个用户
Exchange PowerShell批量复制用户邮箱权限实现脚本
你原有的脚本缺少源用户参数,补全逻辑后可直接实现从源用户批量复制权限到目标用户,完整可运行脚本如下:
# 替换为源用户(要复制权限的用户)的邮箱地址/别名/UPN $sourceUser = "源用户标识" # 替换为目标用户(要接收权限的新用户)的邮箱地址/别名/UPN $targetUser = "目标用户标识" # 获取源用户在所有用户邮箱、共享邮箱上的权限,过滤默认无效权限 Get-Mailbox -RecipientTypeDetails UserMailBox,SharedMailbox | Get-MailboxPermission -User $sourceUser | Where-Object { $_.User -notlike "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false } | ForEach-Object { # 给目标用户添加对应邮箱的相同权限 Add-MailboxPermission -Identity $_.Identity -User $targetUser -AccessRights $_.AccessRights -InheritanceType $_.InheritanceType }
使用说明
- 运行脚本前先替换
$sourceUser和$targetUser为实际的用户标识,支持填写用户邮箱、别名、用户主体名称(UPN) - 需提前连接到对应环境的Exchange管理Shell:本地Exchange运行Exchange命令行管理程序,Exchange Online需先安装并连接Exchange Online PowerShell模块
- 脚本默认过滤了系统自带的
NT AUTHORITY\SELF权限和继承权限,避免添加无效重复权限,有特殊需求可删除Where-Object块内的对应过滤条件 - 如需提前预览权限添加操作,可在
Add-MailboxPermission命令末尾添加-WhatIf参数,确认操作无误后再删除参数执行实际权限添加
可选:追加复制发送类权限
如果需要同时复制「发送为」「代表发送」权限,可在上述脚本执行完成后追加运行以下代码:
# 复制"发送为"权限 Get-Mailbox -RecipientTypeDetails UserMailBox,SharedMailbox | Get-RecipientPermission -Trustee $sourceUser | Where-Object { $_.AccessRights -eq "SendAs" -and $_.IsInherited -eq $false } | ForEach-Object { Add-RecipientPermission -Identity $_.Identity -Trustee $targetUser -AccessRights $_.AccessRights -Confirm:$false } # 复制"代表发送"权限 Get-Mailbox -RecipientTypeDetails UserMailBox,SharedMailbox | Get-MailboxPermission -User $sourceUser | Where-Object { $_.AccessRights -contains "SendOnBehalf" -and $_.IsInherited -eq $false } | ForEach-Object { Set-Mailbox -Identity $_.Identity -GrantSendOnBehalfTo @{add=$targetUser} }
内容的提问来源于stack exchange,提问作者sarah.uk8e
相关产品推荐
相关产品推荐

