Автоматическое уведомление/оповещение о добавлении элементов календаря в общие папки.

Вопрос или проблема

В настоящее время мы используем общедоступные папки в Exchange 2010. У нас есть ряд общих календарей в организации. Некоторые из событий требуют настройки устройств (например, видеоконференций) в определенное время, но конечные пользователи, которые планируют эти встречи, не всегда сообщают нам об этом (даже несмотря на то, что это должно быть сделано за несколько дней). Помимо очевидного способа просто проверять эти индивидуальные календари несколько раз в день, есть ли возможность заставить Exchange (или powershell, Outlook и т.д.) сообщать нам по электронной почте, когда событие создается? Например, если бы Powershell мог обращаться к базе данных общедоступных папок, искать добавленные за последние 12 часов записи и отправлять мне электронное письмо с уведомлением. Даже если бы я мог настроить его на запуск один раз в день, каждое утро в 7:30, это было бы огромной помощью. Какие мысли?

Спасибо!

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

Я сейчас занимаюсь переписыванием этого на PowerShell (библиотека EWS была для 2007 года и еще не работает в 2010 году), так что это довольно свежо в моей памяти 🙂

В отношении определения того, когда что-то добавлено (или, что важно, изменено), я видел, как кто-то пытался использовать статус непрочитанных сообщений, чтобы обнаружить это, но у них возникали проблемы, когда статус непрочитанного сообщения менялся некорректно. Честно говоря, просто делать diff с предыдущим увиденным состоянием, которое вы храните локально (либо база данных, либо какой-то файл), вероятно, самый надежный способ сделать это. Вы можете использовать податрибут CalendarItem.Id.UniqueID для идентификации записей и податрибут CalendarItem.Id.ChangeKey для определения того, когда они изменяются.

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

http://gsexdev.blogspot.com.au/2012/01/ews-managed-api-and-powershell-how-to.html

(как отмечено, вам нужно будет начать с загрузки самой последней интеграции powershell отсюда: http://www.microsoft.com/en-us/download/details.aspx?id=30141)

Ответ или решение

Теория
Использование общих папок в Microsoft Exchange 2010 — это популярный способ для организаций централизовано управлять общими календарями и другой групповой информацией. Однако такие системы имеют свои недостатки, особенно в плане оповещения о новых событиях. Автоматизация процесса уведомления о добавлении или изменении событий в календарях, находящихся в общих папках, может существенно повысить эффективность работы отдела ИТ и службы поддержки, позволяя им оперативно реагировать на потребности организации, такие как настройка видеоконференций.

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

Ранее в организации использовался скрипт на PHP с использованием Exchange Web Services (EWS) для получения данных о новых или измененных событиях. Скрипт работал по принципу сравнения текущих данных с ранее сохраненными в локальной базе для определения изменений. Однако с переходом на Exchange 2010 нужда в написании нового решения привела к необходимости использования PowerShell, в виду его возможности интеграции с EWS Managed API, что на сегодняшний день является более доступным и поддерживаемым методом для работы с Exchange.

Применение
Для реализации автоматического уведомления о календарных событиях при помощи PowerShell следует выполнить несколько шагов:

  1. Подготовка среды:

    • Загрузите и установите последнюю версию EWS Managed API и PowerShell SDK с сайта Microsoft. Это обеспечит вам доступ к необходимым библиотекам и функциям для взаимодействия с Exchange.
    • Например, загрузку можно произвести по ссылке: Microsoft Download Center.
  2. Разработка PowerShell скрипта:

    • Напишите скрипт, который будет использовать EWS Managed API для подключения к Exchange и получения данных о календарных событиях из общих папок.
    • Важно организовать хранение данных в локальной базе данных или файле, чтобы обеспечить возможность сравнения текущих и предыдущих версий события.
    • Используйте свойства CalendarItem.Id.UniqueID для идентификации записи и CalendarItem.Id.ChangeKey для определения изменений, что позволит надежно отслеживать изменения в записях.
  3. Настройка оповещений:

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

Капча загружается...