Приборка групп рассылок в Exchange

В нашей компании используется MS Exchange Server, в нём создано ~2000 групп рассылок: ~1700 обычных и ~300 динамических, и все это хозяйство держит под собой 2800 e-mail адресов.

Хозяев групп нет, а если и есть, то давно уволились, какого-то реестра тоже нет.

В результате, для одного департамента есть такие группы:

  • DISTRIB-Отдел;
  • Distrib_отдел;
  • Отделъ-Пермь;
  • DISTRIB_IT_Otdel.

И столько же динамических:

  • Рассылка-Отдел (Москва);
  • Рассылка-Отдел (Общая);
  • Рассылка Пермский ф-л (Отдел);
  • DST-PRM_NOT_OTDEL.

Мы с коллегами решили, что пришла пора весенней уборки.

Но как узнать какие из этих групп используются? Отключать по одной и смотреть откуда поднимется вой?

Я решил, что это не наш метод и приступил к анализу Exchange MTL (Message Tracking Logs).

Есть событие EXPAND, которое «развёртывает» группу в список получателей. «Ага», — сказал я и начал тестировать стандартную и динамическую группы рассылки.

Первый же подвох ждал меня с динамической группой рассылки — она не порождала события EXPAND.

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

Жалкие попытки изучения Python подсказали мне, что для решения задачи «встречаемых» адресов групп в логе лучше использовать структуру вида словарь/dictionary, а не стандартный массив/array, в силу возможности индексировать структуру по уникальному ключу, которым может выступить адрес группы. В итоге, вместо поиска по массиву сопоставления вы «просто» сразу переходите по индексу.

Оказывается, в Powershell тоже есть свои словари — Hashtable. Ну а дальше дело само начало спориться. 🙂

За месяц письма приходили на 400 из 2800 адресов. Планируем понаблюдать квартал или полгода, после чего начать приборку.

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

До связи ;-).

Добавить комментарий

Ваш адрес email не будет опубликован.