Поиск по сайту:

Как использовать Set CalendarProcessing в PowerShell


Команда Set CalendarProcessing в PowerShell может быть использована для управления настройками календаря в ресурсных почтовых ящиках. Эта команда не может быть использована для пользовательских почтовых ящиков; для этого вам нужно использовать команду Set-MailboxFolderPermission.

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

В этой статье мы рассмотрим, как использовать командлет Set-CalendarProcessing в PowerShell.

Установить CalendarProcessing

Календари ресурсов в основном используются для конференц-залов, но их также можно использовать для бронирования оборудования. Преимуществом календаря ресурсов по сравнению с обычным календарем является то, что мы можем настроить различные политики бронирования.

Прежде чем мы начнем рассматривать, как использовать командлет, давайте сначала кратко ознакомимся с различными вариантами, которые у нас есть в отношении календарей ресурсов.

  • Автоматически принимает запросы на встречи
  • Удалите тему, комментарии, вложения или не календарные элементы из встречи
  • Добавить организатора в тему
  • Установить делегатов календаря
  • Установите окна бронирования (насколько дней заранее можно забронировать)
  • Определите поведение в конфликте на встрече
  • Определите настройки повторяющихся встреч

Требования

Команда Set CalendarProcessing является частью модуля Exchange Online. Поэтому перед началом убедитесь, что вы установили последнюю версию модуля EXO и подключены к Exchange Online.

Добавление календаря конференц-зала

Как уже упоминалось, этот командлет можно использовать только для почтовых ящиков ресурсов. Если у вас еще нет календаря конференц-зала, то сначала нам нужно его создать. Вы можете сделать это в Центре администрирования Microsoft 365, в разделе Ресурсы > Помещения и оборудование.

Мы также используем PowerShell для создания почтового ящика конференц-зала с помощью команды ниже:

New-Mailbox -Name "Board Room" -Room

Чтобы просмотреть настройки календаря по умолчанию, мы можем использовать командлет Get-CalendarProcessing:

Get-CalendarProcessing -Identity BoardRoom | Select *

Установка параметров календаря

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

Детали встречи

Детали встречи включают тему, комментарии, вложения и организатора встречи. По умолчанию всё удаляется из элемента календаря. Это означает, что, когда вы открываете календарь переговорной, вы видите только «Занят» как тему элемента календаря.

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

  • –УдалитьТему – По умолчанию $true. Установите $false, чтобы показать тему встречи.
  • –УдалитьКомментарии – По умолчанию $истина. Установите $ложь, чтобы отобразить детали встречи
  • –УдалитьВложения – По умолчанию $true. Установите $false, чтобы сохранить вложения встречи
  • –ДобавитьОрганизатораКПредмету – По умолчанию $true. Установите $false, чтобы скрыть организатора

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

Set-CalendarProcessing -Identity BoardRoom -DeleteSubject $false

Заметка

Параметры DeleteSubject, DeleteComments и DeleteAttachements влияют только на новые встречи. Поэтому, если вы установите DeleteSubject равным $false, то тема не будет отображаться на существующих встречах.

Включение функции Добавить организатора в предмет по умолчанию. Но когда вы посмотрите на календарь новой комнаты для встреч, вы, вероятно, заметите, что не видите организатора. Причина этого заключается в том, что по умолчанию у пользователей есть лишь разрешение Только доступность на календарь.

Чтобы просмотреть организатора, нам нужно будет дать пользователю "по умолчанию" немного больше прав на календарь. Мы можем сделать это с помощью команды Set-MailboxFolderPermission:

Set-MailboxFolderPermission -Identity BoardRoom:\calendar -User Default -AccessRights Reviewer

По умолчанию (слева) - После изменения прав и отображения объекта (справа)

Принятие встреч

Истинная сила календарей ресурсов заключается в способности автоматически принимать запросы на встречи в соответствии с политикой бронирования. Эта политика может быть создана с помощью комбинации настроек, позволяя вам адаптировать требования под ваши нужды.

Наиболее важная настройка — это параметр -AutomateProcessing. По умолчанию он установлен на AutoAccept, что автоматически принимает запрос на встречу, если нет конфликта.

Другие варианты:

  • Нет – Обработка календаря полностью отключена
  • Автообновление – Запросы на встречи помещаются как предварительные, и делегат должен будет одобрить или отклонить встречу.
  • AutoAccept – Настройка по умолчанию; встречи принимаются в соответствии с другими политиками.
Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept

Разрешение конфликтов

По умолчанию конфликты не разрешены. Для одного запроса на встречу это часто не является важной настройкой, потому что пользователь увидит, доступен ли вариант, сразу же при создании приглашения на встречу.

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

Когда установлен в $true, он позволит создать серию повторяющихся встреч, независимо от того, есть ли конфликт с существующими бронированиями. Стандартный вариант $false на самом деле более интересен. Этот вариант будет отклониять серию встреч только в зависимости от количества конфликтов в серии.

Для этого используются два других параметра, чтобы определить, отклонит ли он запрос или нет: ДопустимыйПроцентКонфликтов или МаксимальноеКоличествоКонфликтов.

Параметр MaximumConflictInstances определяет, сколько конфликтов может иметь повторяющаяся встреча. Если его значение равно 0, то она не может иметь никаких конфликтов. Вы можете установить это значение на любое желаемое число, но по умолчанию оно равно 0.

Другой вариант - это ConflictPercentageAllowed. По умолчанию это также 0, и может быть установлено на любой процент, который вы хотите.

Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept -AllowConflicts $false -MaximumConflictInstances 3 -EnableResponseDetails $true

При использовании одного из вышеуказанных вариантов я также рекомендую включить Включить детали ответа. Таким образом, организатор получит уведомление о каждом отклоненном случае в серии встреч.

Часы работы только

Параметр -ScheduleOnlyDuringWorkHours обеспечивает запрет на бронирование ресурса вне рабочего времени. Для того чтобы этот параметр работал, вам нужно убедиться, что рабочие часы настроены для данного ресурса.

Вы можете проверить это с помощью следующей команды PowerShell:

Get-MailboxCalendarConfiguration -Identity boardroom

Result
Identity  WorkDays WorkingHoursStartTime WorkingHoursEndTime WorkingHoursTimeZone
--------  -------- --------------------- ------------------- --------------------
boardroom Weekdays 08:00:00              17:00:00            W. Europe Standard Time

Убедитесь, что часовой пояс рабочего времени соответствует часовому поясу вашего пользователя; в противном случае часы не совпадут. Вы можете настроить параметры с помощью команды Set-MailboxCalendarConfiguration. Узнайте больше об этом в этой статье.

Включите настройку с:

Set-CalendarProcessing -Identity BoardRoom -ScheduleOnlyDuringWorkHours $true

Добавление дополнительного ответа

Удобной функцией командлета Set-CalendarProcessing является возможность добавления дополнительного ответа в подтверждающее письмо. Например, вы можете добавить информацию о том, как использовать ресурс, или предоставить другую дополнительную информацию.

Нам нужно установить два параметра для этого, первый - -AdditionalResponse. Здесь вы можете добавить строку с текстом, который хотите добавить. А второй - -AddAdditionalResponse, который нужно установить в $true, чтобы действительно добавить текст в ответ.

Set-CalendarProcessing -Identity BoardRoom -AdditionalResponse "Make sure to get your own coffee" -AddAdditionalResponse $true

Когда пользователь резервирует ресурс, текст отображается в подтверждающем электронном письме:

Политика бронирования и запросов

Когда вы посмотрите на командлет Set-CalendarProcessing, вы увидите несколько параметров, связанных с Бронированием в Политике и Запросом в Политике. Эти параметры могут показаться немного запутанными на первый взгляд, но они используются для управления тем, кто может сделать запрос на бронирование, и будет ли запрос автоматически одобрен или нет.

Существует несколько отличий, которые вам нужно знать, чтобы понять варианты:

  • Запросы в соответствии с политикой - запросы на встречи, которые соответствуют правилам бронирования, таким как допустимые временные слоты, отсутствие конфликтов.
  • Запросы вне политики – не соответствуют правилам бронирования. Например, они могут конфликтовать с другой бронью или находиться вне допустимого времени.
  • BookInPolicy – Это пользователи, которые автоматически одобряются, если они следуют политике.
  • ЗапросВПолитике – Пользователи в этой группе всегда должны получать одобрение (даже если они следуют политике)

Чтобы помочь вам ещё больше, я создал обзор различных параметров и их влияния на запрос встречи:

ПараметрЭффект, когда $истинаЭффект, когда $false
ВсеКнигиВПолитикеВсе запросы пользователей, соответствующие политике, автоматически одобряются. (По умолчанию: $true)Все запросы пользователей в соответствии с политикой требуют одобрения делегата.
ВсеЗапросыВПолитикеВсе запросы пользователей, соответствующие политике, должны быть одобрены делегатом.Только пользователи в RequestInPolicy нуждаются в одобрении; остальные автоматически одобряются.
ВсеЗапросыВнеПолитикиВсе запросы пользователей, не соответствующие политике, должны быть одобрены делегатом.Только пользователи в RequestOutOfPolicy требуют одобрения; другие автоматически отклоняются.
Книга в политикеОпределяет определенных пользователей, чьи запросы в соответствии с политикой автоматически одобрены.Эти пользователи будут следовать настройке по умолчанию AllBookInPolicy.
ЗапросВПолитикеОпределяет конкретных пользователей, чьи запросы в соответствии с политикой требуют утверждения делегата.Эти пользователи будут следовать настройке по умолчанию AllRequestInPolicy.
Запрос вне политикиОпределяет определенных пользователей, чьи запросы вне политики требуют одобрения делегата.Эти пользователи будут следовать настройке по умолчанию AllRequestOutOfPolicy вместо этого.

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

По умолчанию запросы на бронирование от всех пользователей автоматически принимаются, если они соответствуют правилу бронирования. Это отражается в параметре -AllBookInPolicy, который по умолчанию установлен в $true:

Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $true

Требовать одобрения для каждой просьбы о встрече

Если мы хотим, чтобы каждый запрос на встречу был утвержден делегатом, то нам нужно установить параметр -AllRequestInPolicy в $true и -AllBookInPolicy в $false. Также вам необходимо убедиться, что один или несколько делегатов настроены для календаря ресурса:

Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $false -AllRequestInPolicy $true -ResourceDelegates "john@a-d.site"

Требовать одобрения для запросов на встречи, выходящих за рамки политики

По умолчанию запросы на встречи, которые не соответствуют политике, автоматически отклоняются. Теперь скажем, у вас есть календарь ресурсов, где пользователи могут забронировать служебный автомобиль. Машина может использоваться только в рабочие часы, поэтому вы установили -ScheduleOnlyDuringWorkHours в $true.

Если пользователи хотят забронировать автомобиль вне рабочих часов, им необходимо получить одобрение. Для решения этой проблемы мы можем использовать параметр -AllRequestOutOfPolicy. Мы можем установить его значение на $true, что позволит пользователям подавать запросы, выходящие за рамки политики, которые требуют одобрения делегата почтового ящика ресурса.

Set-CalendarProcessing -Identity Car02 -AllRequestOutOfPolicy $true -ResourceDelegates "john@a-d.site" -ScheduleOnlyDuringWorkHours $true

Разрешить бронирование только конкретным пользователям

Параметры -BookInPolicy и -RequestInPolicy позволяют настроить, какие пользователи могут делать/использовать календарь бронирования ресурсов.

Если у вас, например, есть конференц-зал, который может использоваться только менеджерами по продажам, или ресурс, который может быть забронирован только конкретными пользователями, то мы можем установить параметр AllBookInPolicy в $false и указать пользователей, которые имеют право делать запрос на бронирование.

Используйте параметр BookInPolicy, когда вам не требуется дополнительное одобрение, и параметр RequestInPolicy, когда запрос необходимо одобрить делегатом.

Only allow Adele and Megan to book the company car
Set-CalendarProcessing -Identity Car02 -AutomateProcessing AutoAccept -BookInPolicy "adelev@a-d.site","meganb@a-d.site" -AllBookInPolicy $false

Only allow members of the group "Sales" to book the conference room and require approval by delegate
Set-CalendarProcessing -Identity "Sales Room" -AutomateProcessing AutoAccept -RequestInPolicy "Sales Management" -AllBookInPolicy $false -ResourceDelegates "john@a-d.site"

Если пользователь, который не является членом группы продаж, попытается забронировать конференц-зал, он автоматически получит электронное письмо с уведомлением о том, что запрос отклонен:

Объединение всех настроек

Теперь, когда мы обсудили все различные варианты, давайте взглянем на полную и более сложную конфигурацию, чтобы показать вам возможности.

Ниже вы увидите конфигурацию set calendarprocessing для заседательной комнаты. Я использовал распаковку (splatting), чтобы сделать настройки более удобочитаемыми:

$roomSettings = @{
    "Identity" = "Board Room"
    "ScheduleOnlyDuringWorkHours" = $true
    "EnforceCapacity" = $true
    "AllowConflicts" = $false
    "MaximumConflictInstances" = 3
    "BookingWindowInDays" = 90
    "EnableResponseDetails" = $true
    "AutomateProcessing" = "AutoAccept"
    "BookInPolicy" = "Management"
    "AllBookInPolicy" = $false
    "RequestInPolicy" = "Sales Management"
    "AllRequestOutOfPolicy" = $false
    "RequestOutOfPolicy" = "Management"
    "ResourceDelegates" = "jane@a-d.site"
}
Set-CalendarProcessing @roomSettings

Давайте разберем настройки, чтобы увидеть влияние на календарь ресурсов:

  • Только в рабочие часы → Помещение можно забронировать только в рабочее время (ScheduleOnlyDuringWorkHours=$true).
  • Нет перепродажи → Номер нельзя бронировать сверх его вместимости
    (EnforceCapacity=$true).
  • Нет конфликтующих встреч → Комната не разрешает двойные бронирования
    (РазрешитьКонфликты=$false).
  • Ограниченные исключения конфликтов → Если конфликты разрешены, допускается максимум 3 пересекающихся случая (MaximumConflictInstances=3).
  • Окно бронирования: 90 дней → Пользователи могут бронировать только за 90 дней вперед (BookingWindowInDays=90).
  • Отправлять подробные ответы → Когда запрос принимается/отклоняется, ответное письмо включает детали (EnableResponseDetails=$true).
  • Авто-принятие бронирований → Система автоматически обрабатывает и принимает запросы на встречи, которые соответствуют политике (AutomateProcessing=“AutoAccept”).

Кто может забронировать комнату?

  • Управление может бронировать автоматически → Их запросы немедленно одобряются, если они следуют правилам бронирования (BookInPolicy=“Управление”).
  • Управление продажами нуждается в одобрении → Даже если их запрос соответствует правилам, делегат должен его одобрить (RequestInPolicy=“Управление продажами”).
  • Все остальные заблокированы → Поскольку AllBookInPolicy=$false, пользователи, которые не находятся в BookInPolicy или RequestInPolicy, не могут забронировать комнату.
  • Руководство может запрашивать бронирование вне политики, но требуется одобрение → Если руководство пытается забронировать вне разрешенных правил, им все равно нужно одобрение делегата (RequestOutOfPolicy=“Руководство”).

Кто одобряет запросы?

  • Джейн (@a-d.site) является делегатом → Она отвечает за одобрение любых запросов, которые требуют ручной проверки (ResourceDelegates=“jane@a-d.site“).

Заключение

Хотя мы можем настроить несколько параметров в центре администрирования Microsoft 365 для почтовых ящиков ресурсов, команда set-calendarprocessing действительно позволяет вам точно настроить параметры.

Надеюсь, эта статья помогла вам с настройкой вашего календаря ресурсов. Если у вас есть какие-либо вопросы, просто оставьте комментарий ниже.