Мне нужно собрать и сохранить права доступа к каждой папке в каждом почтовом ящике нашей системы Exchange. Я уже знаю командлет Get-MailboxFolderPermission
но есть серьезная проблема.
Объекты, возвращаемые Get-MailboxFolderPermission
являются кортежем (User, AccessRights, FolderName). Однако удостоверение «Пользователь» не является объектом, это просто строка, представляющая DisplayName пользователя. (Изменить: это было неверно. Подробности см. В ответе).
Тем не мение, отображаемые имена не обязательно уникальны в развертывании Exchange. В нашем лесу более десятка почтовых ящиков с одинаковыми отображаемыми именами. Следовательно, результаты Get-MailboxFolderPermission
неоднозначны и не идентифицируют однозначно отдельного пользователя или почтовый ящик.
Как я могу однозначно получить разрешения на папки почтового ящика? Я хотел бы иметь возможность переназначить их позже, используя Add-MailboxFolderPermission
, в идеале с UPN.
Поработав с этим пару часов, похоже, что я ошибался. Командлет для получения разрешений на почтовые ящики папок действительно предоставляет все в User.ADRecipient
свойство.
Get-MailboxFolderPermission "username:\Foldername" |
Foreach-Object {
$_.User.ADRecipient.UserPrincipalName
}
Я обнаружил это, выведя результаты с помощью Export-Clixml
который создал очень большой файл XML. Теперь я знаю, что это может быть полезным методом для определения того, что у вас действительно есть в наличии.