КЭНК: следитор за изменениями в контактах Exchange
На нынешнем проекте сложилась практика использования ящиков в Exchange в качестве адресной книги сразу несколькими членами рабочей группы и\или на нескольких устройствах одновременно. При этом регулярно возникала необходимость понять, когда было внесено то или иное изменение в адресную книгу ящика, а иногда — ещё и скопировать изменённые данные обратно без привлечения технических специалистов и механизмов резервного копирования. Ожидаемо, функционал требовался кастомный, а бюджет на получение дополнительного сервиса не рассчитан.
Заряжаем павершелломёт
Для целей автоматизации Exchange я часто использую Exchange Web Services (EWS) Managed API, вызывая его функции из PowerShell через библиотеку. Его применение напрашивается и тут. Можно смотреть содержимое адресной книги, дампить интересуемые данные из ящика в текстовый файл, сравнивать результаты актуального дампа и предыдущего, и формировать отчёты об изменениях. Побочный результат — раз уж мы получаем изменения, можно хранить их историю и иметь возможность ретроспективы.
Дальше — дело техники и деталей. Выгружаем поля в текстовый формат, схлопываем многоэлементные объекты в строки по формату как нам вздумается, исключаем те поля, за которыми следить не хотим. Приправляем наглядным представлением в виде HTML отчёта, выделяем цветом изменения и наносим прочую пользу клиентам сервиса. Даем возможность службе техподдержки ставить и снимать ящики с контроля добавлением в специальную доменную группу. Запускаем скрипт по планировщику с максимально возможной частотой. Роботы трудятся — а человеки пользуются результатом.
Сервис на базе этого скрипта успешно работает несколько лет. Служба техподдержки всегда может разрешить вопросы клиентов об изменениях в адресных книгах, некоторые клиенты пользуются отчётами для контроля работы в группе и оперативного отката изменений. Уникальный кастомный сервис достался заказчику в рамках общего контракта на обслуживание системы. Проблемы, для решения которых раньше требовалась работа специалиста, решаются автоматически и часто без привлечения техподдержки вообще. Чистый КЭНК!
Скрипт на гитхабе https://github.com/alexbatishchev/kenk-contacts-watcher
Слава Роботам!