如何获得SamAccountName或UPN的邮箱文件夹权限?

我需要收集和存储Exchange系统每个邮箱中每个文件夹的文件夹权限。 我已经意识到Cmdlet的Get-MailboxFolderPermission但它有一个严重的问题。

Get-MailboxFolderPermission返回的对象是(User,AccessRights,FolderName)的元组。 但是,“用户”标识不是一个对象,它只是表示用户的DisplayName的简单string。 (编辑:这是不正确的。查看答案的细节。)。

但是, 显示名称在Exchange部署中不一定是唯一的。 在我们的森林中,有十几个邮箱具有相同的显示名称。 因此,来自Get-MailboxFolderPermission的结果不明确,并且不能唯一标识单个用户或邮箱。

如何以明确的方式获取邮箱文件夹的权限? 我希望稍后可以使用Add-MailboxFolderPermission重新分配它们,理想的情况是使用UPN。

经过几个小时的修补,看起来我错了。 获取文件夹邮箱权限的cmdlet实际上提供了User.ADRecipient属性中的所有内容。

 Get-MailboxFolderPermission "username:\Foldername" | Foreach-Object { $_.User.ADRecipient.UserPrincipalName } 

我通过使用Export-Clixml输出结果来发现这一点,它创build了一个非常大的XML文件。 现在我知道这可以是一个有用的技术,看看你有什么可用的。