Управление доступом и доступностью в календарях Exchange/Microsoft 365

В этой статье мы рассмотрим, как управлять правами общего доступа к календарям пользователей в ящиках on-prem Exchange Server и Microsoft 365 через Outlook и PowerShell. Отдельно остановимся на теме просмотра доступности (free/busy) в календарях ящиков комнат или пользователей.

Довольно часто почтовому администратору нужно предоставить права доступа к календарю другого сотрудника. Например, секретарь хочет создавать, удалять и редактировать любые записи в календаре руководителя и служебном ящике переговорной комнаты, или руководитель отдела хочет видеть и иметь возможно редактировать занятость сотрудников отдела в их календарях.

Настройка общего доступа к календарю из Outlook/OWA

Пользователь может самостоятельно прямо из Outlook предоставить доступ к своему календарю. Календарь Exchange – это по сути обычная папка в ящике пользователя. Можно настроить доступ к календарю через десктопную версию Outlook или через Outlook Web Access.

Выберите нужный календарь и в его настройках нажмите Sharing and permissions .

настроить общий доступ к календарю

В открывшемся окне появится текущий список пользователей и групп, которым дан доступ к вашему календарю. В нашем примере любой пользователь вашей организации (тенанта) может просматривать информацию о доступности Free/Busy в календаре ( Can view when I’m busy ). Для пользователя Henrietta предоставлены права на создание и редактирование любых событий в календаре.

текуший список доступа к календарю exchange/office 365

Пользователь может самостоятельно отправить другому пользователю приглашение о предоставлении общего доступа к своему календарю. Нужно указать email пользователя и уровень разрешений. В этом примере я предоставлю права на Alex право на просмотр событий в моем календаре ( Can view all details ).

предоставить доступ к календарю

В десктопных версиях Outlook права на календарь назначаются похожим образом. Перейдите в календарь Outlook, нажмите кнопку Разрешения для календаря . В открывшемся окне появится текущий список доступа к календарю. С помощью кнопок Добавить / Удалить вы можете изменить права доступа.

Outlook изменить права доступа на просмотр и редактирование календаря почтового ящика

Назначить права доступа к календарю в ящике Exchange/Microsoft 365 через PowerShell

Администратор организации/тенанта может предоставить доступ к календарю любого пользователя или общего почтового ящика с помощью PowerShell или Microsoft Graph API (для Microsoft 365/Azure). Кроме того, только с помощью PowerShell можно быстро предоставить права доступа на календари всех пользователей организации.

Для управления доступом к календарю можно использовать все принципы, описанные в статье про управление правами доступа к папкам Exchange/Office 365 .

Подключитесь к своему on-prem Exchange Server или к тенанту Microsoft 365 (Exchange Online):

Текущие права доступа к календарю пользователя можно вывести с помощью команды:

Get-MailboxFolderPermission -Identity kbuldogov:Calendar

Get-MailboxFolderPermission вывести текущие права доступа на календарь ящика exchange

Название папки календаря может отличаться в зависимости от региональных настроек ящика . Т.е. для русской версии ящика нужно заменить аргумент команды на kbuldogov:Календарь .

В столбце User указаны пользователи, а в столбце AccessRights – права доступа. В Exchange есть ряд предопределенных ролей, используемых для общего доступа к папкам и календарю (в порядке увеличения привилегий):

  • None
  • AvailabilityOnly
  • Contributor
  • Reviewer
  • NonEditingAuthor
  • Author
  • PublishingAuthor
  • Editor
  • PublishingEditor
  • Owner

Чтобы предоставить другому пользователю доступ к ящику, используйте команду Add-MailboxFolderPermission . Например, чтобы предоставить права редактирования в календаре Boss1 пользователю NestorV , выполните команду:

Add-MailboxFolderPermission -Identity boss1:Calendar -User NestorV -AccessRights Editor

Если нужен доступ только на просмотр календаря:

Add-MailboxFolderPermission -Identity boss1:Calendar -User NestorV -AccessRights Reviewer

Чтобы удалить права на календарь:

Remove-MailboxFolderPermission -Identity boss1:Calendar –user NestorV

Можно экспортировать в CSV файл текущие права на календари всех ящиков тенанта Azure (организации Exchange):

$Mailboxes = Get-Mailbox -ResultSize Unlimited | Select-Object UserPrincipalName
foreach ($mailbox in $Mailboxes) {
Get-MailboxFolderPermission -Identity "$($mailbox.UserPrincipalName):Calendar" |
Select-Object @{Name="UrerPrincipalName";E={$mailbox.UserPrincipalName}},FolderName,User,AccessRights |
Export-Csv C:PSExchange_Calendar_report.csv -NoTypeInformation -Append
}

Полученный CSV файл с UPN почтовых ящиков и правами доступа к каленжарю можно в дальнейшем проанализировать в Excel.

powershell скрипт для экспорта разрешений календарей всех сотрудников организации

Следующий PowerShell скрипт разрешит определенному пользователю просматривать все календари в организации:

Foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { Add-MailboxFolderPermission -identity "$($Mailbox.Name):Calendar" -AccessRights Owner -User NestorV }

Управление видимостью (free/busy) в календарях ящиков Exchange/Microsoft 365

Пользователи одной организации могут просматривать информацию и доступности других пользователей или ресурсных ящиков. По-умолчанию доступна только информация Свободен/Занят.

статус свободен/занят в календаре Outlook

Для просмотра не доступны ни темы, ни описания, ни местоположения для записей в календаре других пользователей.

Такое поведение обеспечивается благодаря тому, что на все ящики назначено разрешение Default= AvailabilityOnly . Тип разрешения AvailabilityOnly предоставляет только право на просмотр информации доступности Free/Busy.

AvailabilityOnly - право просмотра информации Free/Buzy в ящике Exchange/Office 365

Возможно, вы хотите, чтобы пользователи могли просматривать не только доступность, но и темы и местоположения событий в календаре определенного ящика (например, общего календаря ресурса). Следующая команда разрешит всем пользователям просматривать события в календарях всех комнат:

Foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited) | Where {$_.ResourceType -eq "Room") { Add-MailboxFolderPermission -identity "$($Mailbox.Name):Calendar" -AccessRights AvailabilityOnly -User Default }

По-умолчанию вместо темы встречи показывается имя владельца. За это отвечает атрибут AddOrganizerToSubject = $true . Чтобы разрешить просматривать в календаре комнаты темы и их содержимое:

Set-CalendarProcessing room1 -DeleteComments $false -DeleteSubject $false -AddOrganizerToSubject $false

В Exchange Online вы можете настроить, разрешать ли пользователям публиковать свои календари для внешних пользователей (организаций). Откройте Exchange Admin Center и перейти в раздел Organization -> Sharing .

По умолчанию используется Default Sharing Policy , которая разрешает делиться с внешними организациями только информацией Free/Busy. Здесь вы можете ограничить список почтовых доменов, с которыми можно делиться календарями и/или изменить набор информации в календаре, которой можно делиться (темы, местоположение, организатор).

exchange admin center - разрешить публиковать календари для внешних пользователей

EnglishRussianUkrainian