Вопрос или проблема
Я пытаюсь найти команду PowerShell, которая покажет мне, какие календари определенный пользователь имеет права доступа.
Я могу использовать Get-MailboxFolderPermission -identity “User:\Calendar”
, чтобы узнать, какие права установлены на этот конкретный почтовый ящик, но мне нужно что-то вроде обратного.
У меня Exchange 2010.
Ниже приведенная команда работает в моей среде:
Get-Mailbox | % { Get-MailboxFolderPermission (($_.PrimarySmtpAddress.ToString())+”:\Calendar”) -User *user1* -ErrorAction SilentlyContinue} | select Identity,User,AccessRights
Она отобразит все почтовые ящики, на чьем календаре у user1 есть дополнительные права.
Вы можете попробовать этот скрипт.
https://o365reports.com/2021/11/02/get-calendar-permissions-report-for-office365-mailboxes-powershell/
Кроме того, скрипт может генерировать 6 различных отчетов о правах доступа к календарю в зависимости от параметра, который вы передаете при выполнении скрипта.
Ответ или решение
Для того чтобы узнать, какие календари доступны определённому пользователю в Exchange 2010, можно воспользоваться командлетами PowerShell. Если вы хотите получить права доступа пользователя к календарям других пользователей, можно использовать следующую команду:
Get-Mailbox | ForEach-Object {
Get-MailboxFolderPermission "$($_.PrimarySmtpAddress):\Календарь" -User "user1" -ErrorAction SilentlyContinue
} | Select-Object Identity, User, AccessRights
Что делает эта команда?
-
Get-Mailbox: Этот командлет получает список всех почтовых ящиков в вашей организации.
-
ForEach-Object: Перебирает каждый почтовый ящик, полученный на предыдущем шаге.
-
Get-MailboxFolderPermission: Для каждого почтового ящика команда запрашивает права доступа к папке "Календарь" конкретного пользователя (в данном примере — "user1"). Обратите внимание, что если права доступа отсутствуют, к ним будет применён параметр
-ErrorAction SilentlyContinue
, что предотвращает вывод сообщений об ошибках. -
Select-Object: Этот командлет выбирает три свойств для окончательного вывода:
Identity
(идентификатор почтового ящика),User
(пользователь, чьи права доступа проверяются), иAccessRights
(права доступа).
Вывод данных
Команда выдаст список всех почтовых ящиков, в которых указанный пользователь "user1" имеет доступ к календарю. Важно понимать, что вывод будет включать только те почтовые ящики, где "user1" имеет специальные права доступа.
Примечания
- Убедитесь, что вы запускаете эти команды с необходимыми правами доступа. Вам может потребоваться быть администратором Exchange для выполнения подобных команд.
- Если вам нужно проверять права доступа для нескольких пользователей, вы можете легко модифицировать этот скрипт, добавив дополнительный цикл или передав список пользователей.
Эти команды позволят вам эффективно управлять доступом к календарям и получать необходимую информацию в вашей среде Exchange 2010.