SFB 项目经验-60-导出-共享邮箱-权限-How to get a list of Shared mailboxes and users with permissions

How to get a list of Shared mailboxes and users with permissions to those mailboxes in Exchange Online?


实际需求:

人事部:

需要使用同一邮箱收邮件。

新建用户邮箱,并配置为共享邮箱,分配相应的权限,再将用户分配给多个人使用,这样大家都可以使用同一个邮箱收邮件。


场景:

在跨林迁移的时候,需要导出共享邮箱权限,方便在最终林中给共享邮箱分配权限。


解决方法:

适用于Exchange 2013和Exchange 2010。如果您尝试提取组织中的所有共享邮箱,并确定谁拥有权限。按照下面的cmdlet,您可以将数据导出到txt文件,供您随意参考和查看。

1)第一个cmdlet将收集所有共享邮箱并将其插入到变量中。

$Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName | sort displayname

2)此步骤将获取该邮箱变量,并为每个邮箱输出邮箱名称,具有访问权限的用户和分配的访问权限,

并将其写入txt文件。

$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,acce***ights} >SharedPermissions.txt

您可能会注意到,您拥有嵌套的安全组,其中包含对这些共享邮箱的权限。要获取嵌套SG的成员资格列表,cmdlet将类似于一些小的更改:

1)将枚举限制更改为-1,以便我们可以返回完整输出。

$FormatEnumerationLimit =-1

2) 获取完整列表安全组并将其添加到变量。

$sgroup= Get-Group -RecipientTypeDetails MailUniversalSecurityGroup -resultsize unlimited

3) 运行powershell cmdlet,以便对于每个组,我们将displayname和members输出到名为“Group members.txt”的文本文件。

$sgroup | sort displayname | foreach {Get-Group -Identity $_.WindowsEmailAddress | fl displayname,members} > SGroupMembers.txt

注意*

如果您尝试写入C目录,则第3行可能会失败。

您可能需要更改目录以写入临时文件夹。要更改目录,请使用此cmdlet。

这会将文件写入C:\temp文件夹(如果不存在)。它将被创建。

CD C:\temp

然后再次运行第3步。

您可以对其他资源邮箱(例如会议室邮箱,共享邮箱,通用通讯组和通用安全组)执行相同的操作,您只需更改-RecipienttypeDetails并验证您要查找的参数即可。