В настоящее время мы используем общие папки с Exchange 2010. У нас есть несколько общих календарей по всей организации. Некоторые из размещенных элементов требуют, чтобы мы настроили устройства (например, видеоконференцсвязь) в определенное время, но конечные пользователи, которые назначают эти встречи, не всегда лучше всего сообщают нам, когда это происходит (даже если это должно быть за несколько дней / уведомление). Помимо очевидного способа просто заходить в эти отдельные календари несколько раз в день, чтобы посмотреть, есть ли способ, чтобы Exchange (или PowerShell, Outlook и т. Д.) Предупреждал нас по электронной почте о создании события? Например, если Powershell может перейти к базе данных общих папок, выполнить поиск любых записей, добавленных за последние 12 часов, а затем отправить мне электронное письмо, чтобы сообщить мне об этом. Даже если бы я мог настроить его на запуск один раз в день, каждое утро в 7.30, это было бы огромным подспорьем. Мысли?
Спасибо!
на самом деле мы делали это с помощью PHP EWS, где мы часто в течение дня очищали набор календарей на предмет изменений (сравнивая их с базой данных, которую мы хранили локально, последних значений, которые мы видели для этого календаря), а затем отправляли нам электронное письмо сводный список обнаруженных изменений.
Я сейчас переписываю это в PowerShell (библиотека EWS была для 2007 года и еще не работает в 2010 году), так что сейчас это совсем свежо в моей голове :)
Что касается определения, когда что-то добавляется (или, что важно, изменяется), я видел, как кто-то пытался использовать непрочитанный статус сообщения как способ обнаружения этого, но у них возникали проблемы, когда непрочитанный статус не менялся должным образом. Честно говоря, простое сравнение с предыдущим просмотренным состоянием, которое вы храните локально (база данных или какой-то плоский файл), вероятно, самый надежный способ сделать это. Подсвойство 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)