Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть 1: управление копиями публичных папок и клиентскими разрешениями.
В предыдущей части мы рассмотрели встроенные сценарии для управления публичной папкой (Public Folder). Мы узнали, что все стандартные сценарии Exchange расположены в папке сценариев в директории, куда установлен сервер Exchange Server.
В этой части мы рассмотрим некоторые сценарии, позволяющие администраторам получать отчеты агентов антиспама, а также некоторые дополнительные сценарии, с помощью которых администраторы смогут создавать более удобные отчеты.
Прежде всего давайте воспользуемся PowerShell Scriptacular, который представляет собой набор полезных скриптов, используемых в PowerShell, а также в Exchange Management Console. Этот набор сценариев был разработан Вивеком Шарма и Махай Джалобенау во время их работы над оболочкой Exchange Management Shell.
Для загрузки этого пакета посетите сайт viveksharma.com: techlog, с которого можно скачать самую последнюю версию. Текущая версия Scriptacular содержит следующие сценарии:
Чтобы установить Scriptacular, просто скачайте архивный zip файл с веб сайта и извлеките его содержимое в папку сценариев в директорию установки Exchange Server 2007. Если вы устанавливали Exchange Server, используя параметры по умолчанию, то нужно выбрать следующий путь c:\program files\Microsoft\Exchange Server\Scripts folder.
В этой статье мы будем работать с последними двумя сценариями списка, коими являются out-html.ps1 и out-ie.ps1. Оба сценария можно использовать с дополнительными параметром | (pipe) в конце любой команды PowerShell, первый генерирует результаты в формате HTML, а второй берет эти результаты и отображает их в сеансе обозревателя Internet Explorer.
Теперь, когда мы знаем, как устанавливать утилиту и с какими сценариями мы будем работать, давайте рассмотрим их использование. Допустим, мы создаем ежедневный отчет статистики наших почтовых ящиков и выполняем команды Get-MailboxStatistics | select DisplayName,ItemCount| Export-csv c:\report.csv. Теперь давайте усовершенствуем формат результатов с помощью Scriptacular путем простого добавления следующих дополнительных команд:
Get-MailboxStatistics | select DisplayName,ItemCount| out-html | out-ie
Теперь вы можете сравнить оба полученных результата, которые показаны на рисунках 01 и 02.
Рисунок 01: Результаты, созданные out-html | out-ie
Рисунок 02: Результаты созданные Export-csv
Мы можем пойти немного дальше и создать сценарий для генерирования отчетов html с помощью скрипта, который мы только что видели. Следующие три строки могут быть сохранены в формате .ps1, после чего файл можно выполнять ежедневно, в результате у вас будет имя файла, содержащее месяц и день выполнения, содержимое этого файла будет представлять собой результаты команды Get-MailboxStatistics.
$VarDay = (Get-Date).day
$VarMonth = (Get-Date).month
Get-MailboxStatistics | out-html | out-file c:\reports\MailboxStatistics-$VarMonth-$VarDay.html
Прежде чем вдаваться в подробности использования встроенных сценариев для агентов антиспама, нам нужно понять, как агенты транспортировки записывают свои действия в Exchange Server 2007. Все операции, выполняемые некоторыми агентами антиспама, записываются в текстовые файлы в директории AgentLog, которая находится в каталоге <Exchange Server directory installation>\TransportRoles\Logs\AgentLog\, по умолчанию любая роль сервера Hub Transport и Edge Transport Server записывает информацию в эту папку. Единственными агентами, способными вносить записи в эту папку, являются агент фильтрации подключений, фильтрации содержимого, агент правил Edge, агент фильтрации реципиентов, фильтрации отправителя и агент ID отправителя.
Содержимое папки AgentLog представляет собой множество логов в режиме круговой записи, что означает, что когда логи достигают ограничения своего срока существования в 30 дней или размера 250MB (независимо от того, какой предел будет достигнут в первую очередь) они будут автоматически удалены. Генерируются они по дням или по 10MB, независимо от того, какое значение будет достигнуто в первую очередь. Администратор Exchange может включить или выключить файлы AgentLog, однако невозможно настроить путь, возрастной предел, максимальный индивидуальный размер и максимальный размер директории. Лог каждого агента содержит следующую информацию:
Можно воспользоваться блокнотом, чтобы открыть логи (рисунок 03) и прочитать всю информацию, содержащуюся в них, а можно воспользоваться Excel, чтобы разделить содержимое на разные столбцы.
Рисунок 03: Файл Agent Log, открытый в блокноте
Есть и другой способ прочтения и сортировки информации этих файлов, коим является использование команды Get-Agentlog (рисунок 04). Команда отобразит ту же информацию, только более удобным способом. Можно более подробно рассмотреть результаты команды get-AgentLog, а также проверить, кто отправлял сообщение, кто должен был его получить, предпринятое действие, SMTP ответ и причину, по которой сообщение не было доставлено.
Рисунок 04: Результаты команды Get-Agentlog
Итак, теперь, когда мы знаем, как агенты антиспама записывают информацию и как использовать out-html и out-ie команды, мы можем добавить один или более элементов в нашу смесь: скрипт антиспама, который генерирует некоторые отчеты о деятельности агентов антиспама .
Следующие сценарии можно использовать для сбора информации из Agentlog:
SCL Histogram: Мы можем получить информацию, записанную агентом фильтрации содержимого и сгруппировать ее значением SCL. Чтобы сортировать результаты, можно воспользоваться следующей командой (рисунок 05)
Рисунок 05: Гистограмма SCL.\get-antispamSCLHistogram.ps1 | sort-object Name
<img class="attachment wp-att-4348 centered" src="/wp-content/uploads/2009/01/2338.jpg" alt="2338" width="567" height="273" />
Top Blocked Sender Domains: Перечисляет первые N доменов отправителей, которые были заблокированы агентами транспортировки, нам также нужно указать, будет ли эта информация идти с p1 или p2, где информация P1 идет с конверта сообщения (из поля заголовка), а p2 идет с заголовка сообщения (из поля заголовка). Можно использовать следующую команду, как показано на рисунке 06.
Рисунок 06: Первые заблокированные домены отправителя.\get-AntispamTopBlockedSenderDomains.ps1 p1
<img class="attachment wp-att-4349 centered" src="/wp-content/uploads/2009/01/2435.jpg" alt="2435" width="570" height="229" />
Отчет фильтрации (Filtering Report): этот сценарий позволяет администратору просматривать, какие агенты отвечают за нижеуказанные опции:
К примеру, давайте воспользуемся следующей командой, чтобы получить список агентов, отклоняющих сообщения, как показано на рисунке 07.
.\get-AntispamFilteringReport.ps1 messagesrejected
Теперь мы знаем, что фильтр содержимого стал причиной блокирования 546 сообщений в нашей организации.
Рисунок 07: Отчет фильтрации
Top Blocked Sender IP: используя этот сценарий, мы можем просматривать первых N (количество) заблокированных IP отправителей, мы можем воспользоваться параметром ‘top и указать, сколько записей хотим получить в результатах сценария, в следующем сценарии (рисунок 08) мы просматриваем первые 20 IP адресов, которые были блокированы нашими агентами антиспама:
Рисунок 08: Первые заблокированные IP адреса отправителей.\Get-AntispamTopBlockedSenderIPs.ps1 -top 20
<img class="attachment wp-att-4351 centered" src="/wp-content/uploads/2009/01/2636.jpg" alt="2636" width="533" height="315" />
Первые заблокированные отправители (Top Blocked Senders): этот сценарий отображает список первых N заблокированных отправителей, нам также нужно указать, хотим ли мы получить информацию из p1 или p2 поля, рисунок 09.
Рисунок 09: Первые заблокированные отправители.\get-AntispamTopBlockedSenders.ps1 p1
<img class="attachment wp-att-4352 centered" src="/wp-content/uploads/2009/01/2733.jpg" alt="2733" width="570" height="249" />
Top RBL Providers: отобразит список первых N поставщиков актуальных черных списков, стандартное значение составляет 10, что не применимо в данной среде, так как я использую лишь 2 RBLs, как показано на рисунке 10.
Рисунок 10: Первые RBL поставщики.\Get-AntiSpamTopRBLProviders.ps1
<img class="attachment wp-att-4353 centered" src="/wp-content/uploads/2009/01/2832.jpg" alt="2832" width="534" height="141" />
Первые получатели (Top Recipients): этот сценарий отображает первых N получателей, которые были блокированы агентами антиспама. Для получения этого списка используется следующая команда, как показано на рисунке 11.
Рисунок 11: Первые получатели.\Get-AntispamTopRecipients.ps1
<img class="attachment wp-att-4354 centered" src="/wp-content/uploads/2009/01/2935.jpg" alt="2935" width="534" height="233" />
Есть также сценарий, который улучшает возможность прочтения логов Exchange Setup Logs. Во время процесса установки мастер создает папку под названием C:\ExchangeSetupLogs и добавляет туда массу информации, которая обрабатывается в фоновом режиме в файл ExchangeSetup.log. Мы можем посмотреть этот файл с помощью любого текстового редактора, так как это простой текстовый файл, однако мы можем использовать GetSetupLogs.ps1 для просмотра этой информации. Разница заключается в том, что сценарий показывает предупреждения и критические ошибки различными цветами, что может помочь вам обнаружить и исправить проблемы при диагностике.
Для подтверждения лога установки с помощью встроенного сценария просто выполните .\Get-SetupLog.ps1 из папки Scripts, как показано на рисунке 12.
Рисунок 12: .\Get-SetupLog.ps1
В этой команде можно использовать такие параметры, как:
В этой статье мы посмотрели, как встроенные скрипты собирают информацию из agentlog для создания некоторых отчетов, мы также рассмотрели, как использовать пакет Scriptacular для просмотра html и Internet Explorer результатов из сеанса PowerShell.
Наконец, мы можем сочетать out-html и out-ie с любым из сценариев, показанных в этой статье, для придания более удобного вида логам агентов антиспама.
Источник http://www.msexchange.org