Решено Календарь ресурсного ящика

Облако на базе VMware

msk777

Почетный гость
27.11.2024
43
2
8
МСК
Доброго времени суток.
Возникла потребность сделать следующее:
-Есть переговорная комната. У неё имеется календарь для бронирования. Будет назначено n-количество "модераторов" (пока что назначен 1), чтобы им приходили запросы на бронь и, чтобы они могли принять либо отклонить !
Пробуем играться с различными вариантами доступа к календарю, но ничего не получается! Либо так реализовала сама Майкрософт, либо что-то делаем ни то.....
Ставим одни права - юзеры видят календарь и все события в нём, но не могут создать ни собрание, ни встречу, либо получается сделать, что всё могут, но такие права не удовлетворяют наши потребности, так как в таком случае сообщения о брони не приходит модератору.
Что по итогу мы хотим увидеть - Чтобы любой пользователь мог просматривать календарь переговорки, при этом создавать встречи и собрания, которые будут модерироваться определённым кругом лиц (ну либо одним человеком).
Подскажите, как правильно это реализовать!
Спасибо!
 
Последнее редактирование модератором:
Облако на базе VMware
Добрый день! А какая у вас версия Exchange server ?:unsure:
 
как вариант - накатить этот скрипт в Exchange Management Shell (для On-Premise) или в PowerShell для Exchange Online.

Код:
# Замените "ConferenceRoom1" на имя вашей комнаты,
# а "Moderator@yourdomain.com" — на почту модератора

Set-CalendarProcessing -Identity "ConferenceRoom1" -AutomateProcessing AutoUpdate -ResourceDelegates "Moderator@yourdomain.com"

# Также рекомендуется добавить эти настройки для прозрачности:
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Что делают эти команды:
  • -AutomateProcessing AutoUpdate: Переводит комнату в режим ручного утверждения .
  • -ResourceDelegates: Назначает модератора, которому будут приходить запросы на утверждение .
  • -AddOrganizerToSubject $true: Добавляет имя организатора в тему письма, которое увидит модератор. Это упрощает обработку.
  • -DeleteComments $false и -DeleteSubject $false: Позволяют модератору видеть текст и тему приглашения, а не пустое письмо .
  • Команды для Set-Mailbox с параметрами ModerationEnabled и ModeratedBy включают модерацию на уровне почтового ящика, что может дать более гибкий контроль, однако для базового сценария достаточно первой команды
 
  • Like
Реакции: msk777
Облако на базе VMware
как вариант - накатить этот скрипт в Exchange Management Shell (для On-Premise) или в PowerShell для Exchange Online.

Код:
# Замените "ConferenceRoom1" на имя вашей комнаты,
# а "Moderator@yourdomain.com" — на почту модератора

Set-CalendarProcessing -Identity "ConferenceRoom1" -AutomateProcessing AutoUpdate -ResourceDelegates "Moderator@yourdomain.com"

# Также рекомендуется добавить эти настройки для прозрачности:
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Что делают эти команды:
  • -AutomateProcessing AutoUpdate: Переводит комнату в режим ручного утверждения .
  • -ResourceDelegates: Назначает модератора, которому будут приходить запросы на утверждение .
  • -AddOrganizerToSubject $true: Добавляет имя организатора в тему письма, которое увидит модератор. Это упрощает обработку.
  • -DeleteComments $false и -DeleteSubject $false: Позволяют модератору видеть текст и тему приглашения, а не пустое письмо .
  • Команды для Set-Mailbox с параметрами ModerationEnabled и ModeratedBy включают модерацию на уровне почтового ящика, что может дать более гибкий контроль, однако для базового сценария достаточно первой команды
Чтобы все пользователи видели календарь и могли отправлять запросы на бронирование, но при этом эти запросы утверждал модератор, вам нужно настроить комнату в режиме "Ручное утверждение делегатом". В этом случае помощник по планированию отключается, и все запросы автоматически перенаправляются модератору (делегату) для принятия или отклонения.

Можно по идее через группы безопасности реализовать:unsure: - то есть если надо что бы одни пользователи бронировали комнату автоматически, а другие — только с одобрения, используйте группы безопасности и параметр -RequestInPolicy/ -AllRequestInPolicy.
Это более сложная настройка, которая потребует создания групп и указания их в параметрах Set-CalendarProcessing .

После выполнения команды ваш сценарий будет работать именно так, как вы описали:
  1. Любой пользователь видит календарь комнаты.
  2. При попытке забронировать встречу, она появляется в календаре как "Предварительная".
  3. Модератор получает письмо с запросом и может его принять или отклонить
 
  • Like
Реакции: msk777
как вариант - накатить этот скрипт в Exchange Management Shell (для On-Premise) или в PowerShell для Exchange Online.

Код:
# Замените "ConferenceRoom1" на имя вашей комнаты,
# а "Moderator@yourdomain.com" — на почту модератора

Set-CalendarProcessing -Identity "ConferenceRoom1" -AutomateProcessing AutoUpdate -ResourceDelegates "Moderator@yourdomain.com"

# Также рекомендуется добавить эти настройки для прозрачности:
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Что делают эти команды:
  • -AutomateProcessing AutoUpdate: Переводит комнату в режим ручного утверждения .
  • -ResourceDelegates: Назначает модератора, которому будут приходить запросы на утверждение .
  • -AddOrganizerToSubject $true: Добавляет имя организатора в тему письма, которое увидит модератор. Это упрощает обработку.
  • -DeleteComments $false и -DeleteSubject $false: Позволяют модератору видеть текст и тему приглашения, а не пустое письмо .
  • Команды для Set-Mailbox с параметрами ModerationEnabled и ModeratedBy включают модерацию на уровне почтового ящика, что может дать более гибкий контроль, однако для базового сценария достаточно первой команды
Круто! Спасибо! Попробую!
 
  • Fire
Реакции: Diversant
Облако на базе VMware
После выполнения команды ваш сценарий будет работать именно так, как вы описали:
  1. Любой пользователь видит календарь комнаты.
  2. При попытке забронировать встречу, она появляется в календаре как "Предварительная".
  3. Модератор получает письмо с запросом и может его принять или отклонить
Это после выполнения вот этой команды?
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Я правильно понял?
 
как вариант - накатить этот скрипт в Exchange Management Shell (для On-Premise) или в PowerShell для Exchange Online.

Код:
# Замените "ConferenceRoom1" на имя вашей комнаты,
# а "Moderator@yourdomain.com" — на почту модератора

Set-CalendarProcessing -Identity "ConferenceRoom1" -AutomateProcessing AutoUpdate -ResourceDelegates "Moderator@yourdomain.com"

# Также рекомендуется добавить эти настройки для прозрачности:
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Что делают эти команды:
  • -AutomateProcessing AutoUpdate: Переводит комнату в режим ручного утверждения .
  • -ResourceDelegates: Назначает модератора, которому будут приходить запросы на утверждение .
  • -AddOrganizerToSubject $true: Добавляет имя организатора в тему письма, которое увидит модератор. Это упрощает обработку.
  • -DeleteComments $false и -DeleteSubject $false: Позволяют модератору видеть текст и тему приглашения, а не пустое письмо .
  • Команды для Set-Mailbox с параметрами ModerationEnabled и ModeratedBy включают модерацию на уровне почтового ящика, что может дать более гибкий контроль, однако для базового сценария достаточно первой команды
Не работает!
Всё равно , когда обычный пользователь пытается создать встречу, щёлкнув по дате в календаре 2 раза, то вылазит гневная ошибка, что у вас нет разрешений на создание элементов в этой папке,
Если делаю вывод команды Get-MailboxFolderPermission - Identity хххх:\calendar , то у всех юзеров ( DEFAULT ) стоит по умолчанию AvailabilityOnly.
Если ставлю на default права EDITOR, то да, всё можно создать, открыть, сообщения приходят модератору, но если он делает ОТМЕНА , то ничего не происходит, всё равно собрание в календаре остаётся и не удаляется автоматически!
Что ни так ?
 
Последнее редактирование:
Облако на базе VMware
Это после выполнения вот этой команды?
Set-CalendarProcessing -Identity "ConferenceRoom1" -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"

Я правильно понял?
Один командлет + второй командлет. Какой у вас вопрос 🙄
 
Один командлет + второй командлет. Какой у вас вопрос 🙄
Продублирую ..................
Не работает!
Всё равно , когда обычный пользователь пытается создать встречу, щёлкнув по дате в календаре 2 раза, то вылазит гневная ошибка, что у вас нет разрешений на создание элементов в этой папке,
Если делаю вывод команды Get-MailboxFolderPermission - Identity хххх:\calendar , то у всех юзеров ( DEFAULT ) стоит по умолчанию AvailabilityOnly.
Если ставлю на default права EDITOR, то да, всё можно создать, открыть, сообщения приходят модератору, но если он делает ОТМЕНА , то ничего не происходит, всё равно собрание в календаре остаётся и не удаляется автоматически!
Что ни так ?
 
Решил спросить что по этому поводу думает ИИшка.
Не факт что это в 2013 версии exchange есть эти командлеты и настройки - обновить бы его хотя бы до 2019 а лучше до Exchange Server SE. Что наверху писали не читал

Для реализации вашей задачи — общего доступа к календарю переговорной с модерацией бронирований — в Exchange используется специальный тип почтового ящика: «ресурсный» (resource mailbox), а именно — почтовый ящик комнаты (room mailbox). Вся логика бронирования и утверждения заложена в его настройках.

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

1. Создайте почтовый ящик комнаты
Если его еще нет, создайте в Exchange Admin Center (EAC) новый ресурс. В разделе Recipients > Resources нажмите Add a resource и следуйте инструкциям, указав тип Room.
2. Включите модерацию бронирований
Здесь вы настраиваете, как обрабатываются запросы на бронирование, чтобы встречи не добавлялись в календарь автоматически, а требовали одобрения .

1. В EAC перейдите в Recipients > Resources и выберите вашу комнату.
2. В боковой панели найдите секцию Booking (Бронирование)и внутри нее — Manage delegate settings (Управление настройками делегатов).
3. В параметре Booking requests (Запросы на бронирование) выберите: Select delegates who can accept or decline booking requests (Выберите делегатов, которые могут принимать или отклонять запросы на бронирование) .
4. В поле Delegates (Делегаты) нажмите Add и добавьте одного или нескольких модераторов, которые будут утверждать встречи .
После этого все запросы на бронирование будут отправляться на утверждение делегатам, а не добавляться в календарь автоматически .

3. Настройте автоматическую обработку и поведение при ожидании
Чтобы система корректно обрабатывала запросы и не блокировала календарь на время ожидания утверждения, используйте Exchange Online PowerShell. Для этого выполните команду :

Set-CalendarProcessing -Identity "Название_комнаты" -AutomateProcessing AutoAccept -AddNewRequestsTentatively $false -TentativePendingApproval $false

Что означают эти параметры:
-AutomateProcessing AutoAccept — включает автоматическую обработку входящих запросов, что необходимо для работы делегатов и политик бронирования .
-AddNewRequestsTentatively $false — новые запросы не будут помечаться как предварительные (tentative) в календаре до утверждения .
-TentativePendingApproval $false — запросы, ожидающие утверждения, не будут отображаться в календаре как занятое время, что предотвращает блокировку слота .

4. (Опционально) Настройте гибкие правила для разных пользователей
Если нужно, чтобы некоторые люди (например, руководители) могли бронировать комнату сразу, а остальные — только с утверждением, используйте группы безопасности и PowerShell .
1. Создайте две группы безопасности в Active Directory или Microsoft 365:
Room-AutoBook-Group: для пользователей, которым разрешено автоматическое бронирование.
Room-NeedApproval-Group: для пользователей, чьи запросы требуют утверждения.
2. Выполните команды:

Set-CalendarProcessing -Identity "Название_комнаты" -AllBookInPolicy $false -BookInPolicy "Room-AutoBook-Group@contoso.com" -AllRequestInPolicy $false -RequestInPolicy "Room-NeedApproval-Group@contoso.com" -ResourceDelegates "moderator@contoso.com"
Set-Mailbox -Identity "Название_комнаты" -ModerationEnabled $true -ModeratedBy "moderator@contoso.com" -BypassModerationFromSendersOrMembers "Room-AutoBook-Group@contoso.com"

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

Важный нюанс: как это выглядит для пользователей
1. Просмотр календаря: Все пользователи по умолчанию видят календарь комнаты (свободно/занято) и могут добавлять ее в приглашения.
2. Бронирование с утверждением: Пользователь отправляет приглашение. Запрос уходит модератору. В календаре комнаты это время остается свободным, пока модератор не одобрит встречу .
3. Действия модератора: Модератор получает письмо и просто принимает или отклоняет встречу . После этого календарь комнаты обновляется, а организатор получает уведомление об утверждении или отказе.

Таким образом, ваши пользователи смогут видеть календарь и отправлять запросы на бронирование, а модератор будет централизованно управлять утверждением встреч, не сталкиваясь с проблемой автоматического создания элементов в календаре.
 
Облако на базе VMware
В общем всё выше опробованное не работает ,как хотелось бы.
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"
вот это да, модерирует почту, приходящую на ящик переговорки, но даже если нажать - Отклонить, то не происходит ровным счётом ничего, как события появлялись в календаре, так и появлялись.
 
Что по итогу мы хотим увидеть - Чтобы любой пользователь мог просматривать календарь переговорки, при этом создавать встречи и собрания, которые будут модерироваться определённым кругом лиц (ну либо одним человеком).
Может так просто by design не работает :cautious:
 
Облако на базе VMware
Только понять одного не могу...
В чём разница и почему не работает модерация так, как она должна работать!
Вот задаю я себя -
Set-CalendarProcessing -Identity "ConferenceRoom1" -AutomateProcessing AutoUpdate -ResourceDelegates "Moderator@yourdomain.com"
и
Set-Mailbox -Identity "ConferenceRoom1" -ModerationEnabled $true -ModeratedBy "Moderator@yourdomain.com"
Сделал Set-mailboxfolderpermission -identity ***:\calendar -user default - accessrights noneditingauthor
Себе при этом назначив права - Editor
Да, теперь любой юзер домена может создать собрание либо встречу в календаре комнаты, при этом не имея прав вносить изменения в чужие собрания, да, приходит мне, как модератору сообщение, что на почтовый ящик комнаты что-то пришло, при этом в календаре событие создаётся и появляется ещё ДО модерации....Но!!! Если нажимаю - Утвердить, то понятно всё хорошо. Если нажимаю - Отклонить, то тоже всё хорошо и ничего нигде не удаляется, ни из почты комнаты получается, ни из календаря,
Вот разве так оно должно работать? Зачем тогда вообще существует эта система модерации календаря комнаты, если по факту она не работает? ((
Не понимаю, хоть убейте ((
Может кто-то пояснить ? ((
Может что-то ни так делаю всё же ? ((
 
Последнее редактирование модератором:
В общем разобрался кое-как.
Заработало.
Но! с некоторыми оговорками ))
Перелопатив все настройки ящика и календаря помещения, таки получилось сделать и модерацию и те права, которые действительно нужны всем пользователям.
Только такая петрушка - если открыть ящик комнаты, именно в нём нажать на какую-то дату, после чего попробовать создать собрание либо встречу, то всё, модерация не работает! А вот если из своего личного календаря ( при этом календарь переговорки будет закрыт у себя в аутлуке вообще) попробовать создать тоже собрание в той переговорке, то всё создаётся и сообщения модератору приходят без каких-либо проблем и так же без проблем работает принять либо отклонить!
В общем как-то вот так.
Вариант пока рабочий!
 
  • Like
Реакции: Surf_rider