Назад | Перейти на главную страницу

Анализ почтового ящика Exchange

У меня есть несколько пользователей, чьи почтовые ящики, кажется, растут намного быстрее, чем у других. Например, менее года назад мы заархивировали почту от одного конкретного пользователя, чтобы уменьшить размер его почтового ящика примерно до 4 ГБ (да - я знаю, это смешно, но мы запускаем проект по внедрению автоматического архивирования / квотирования и т. Д. ).

В любом случае, я хочу знать, доступен ли (желательно бесплатный) инструмент, который мы можем использовать для анализа почтового ящика с точки зрения объемов / размеров вложений. Что-то вроде TreeSize, но для Outlook OST (или даже в исходном коде на сервере).

(Мы используем Exchange 2003 SP2, клиенты Outlook 2010)

В Exchange Server 2003 нет ничего, что могло бы предоставить вам необходимую информацию, но существует целая отрасль, построенная на управлении и отчетности Exchange. Это лишь один из доступных инструментов:

http://www.manageengine.com/products/exchange-reports/features.html

Что касается свободно продукты: есть много инструменты для создания отчетов и сбора статистики на OutlookFreeware.com и я один, если разработчики. В частности, Отчет о прикрепленных файлах и Самые большие папки может быть очень полезным для вас.

Фактически, вы можете получить часть этой информации через WMI.

Вот пример на Perl, который я собрал для той же цели:

#! /usr/bin/env perl

use strict;
use warnings;
use Win32::OLE('in');

use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;

print "Mailbox,Size (KB),Total Items,Last Logon Time,Last User\n";

my @computers = qw ( mailserver1 mailserver2 etc);  #array off all mail servers, separated by spaces
foreach my $computer (@computers) {
    my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\MicrosoftExchangeV2") or die "WMI connection failed.\n";
    my $colItems = $objWMIService->ExecQuery("SELECT * FROM Exchange_Mailbox", "WQL",
            wbemFlagReturnImmediately | wbemFlagForwardOnly);

    foreach my $objItem (in $colItems) {
        my $mailboxDisplayName = $objItem->{MailboxDisplayName} || "NULL";
        my $size = $objItem->{Size} || "NULL";
        my $totalItems = $objItem->{TotalItems} || "NULL";
        my $lastLogonTime = substr($objItem->{LastLogonTime},0,8) || "NULL";
        my $lastUser = $objItem->{LastLoggedOnUserAccount} || "NULL";

        #next unless $mailboxDisplayName;
        print "$mailboxDisplayName,$size,$totalItems,$lastLogonTime,$lastUser\n";
    }
}

Вам понадобится установленный perl и модуль Win32 :: OLE, но это довольно просто. Запустите его из командной строки, выполнив perl scriptname.plи записать в файл .csv, запустив perl scriptname.pl > report.csv

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