Назад | Перейти на главную страницу

Как получить разрешения для папки почтового ящика с SamAccountName или UPN?

Мне нужно собрать и сохранить права доступа к каждой папке в каждом почтовом ящике нашей системы 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. Теперь я знаю, что это может быть полезным методом для определения того, что у вас действительно есть в наличии.