none
Получение статистики по размеру сообщений в базе данных RRS feed

  • Вопрос

  • Добрый день!

    Можно ли как-нибудь получить данные о объеме сообщений хранящихся в базах данных полученных за определенный период? Например общий объем сообщений полученных за последние несколько месяцев?

    Или получить данные по количеству сообщений определенного размера? Например : в базах столько то сообщений размером от 5 до 10Мб, а размером от 1 до 5 столько то?

    • Перемещено Hengzhe Li 12 марта 2012 г. 6:09 forum merge (От:Exchange Server 2007)
    21 декабря 2010 г. 16:08

Ответы

  • думаю на скриптах можно написать, но я бы посоветовал использовать продукт Quest MessageStats. Единственное нужно дать send as и receive as права на учетку на все мейлбоксы для аудита всех мейлбоксов. Триалка 30 дневная без лимитов кажется.
    В ПоШике можно написать все...только нужно знать как и что писать

    • Помечено в качестве ответа Roman Kulikovsky 29 декабря 2010 г. 15:02
    29 декабря 2010 г. 14:03

Все ответы

  • Можно сделать примерно как описано здесь. Или использовать командлет Get-MailboxStatistics.
    http://alexxhost.ru
    22 декабря 2010 г. 8:19
  • Можно сделать примерно как описано здесь. Или использовать командлет Get-MailboxStatistics.
    http://alexxhost.ru


    Нет, так как описано там сделать нельзя. Там собирается статистика по базе данных - общий размер, количество сообщений, средней размер сообщения и пр.

    Командлет Get-MailboxStatistics, насколько я понял, то же не подойдет - дает только "общую" статистику по почтовому ящику. А вот получить объем сообщений по какому-то признаку (например попадающих в определенный диапозон по размеру, или полученных за определенный период) он не может.

    Такую статистику можно посчитать с помощью командлета get-messagetrackinglog проанализировав сообщения переданные транспортным сервером. Но это то же другое - получаешь результат только за период, который храняться логи транспортного сервера. Хочется же получить такие цифры из базы (баз) данных. Ну или из каждого ящика и потом просумировать цифры.

    Outlook же может сортировать сообщения по разным признакам (папки поиска). Неужели нельзя сделать такое из PoSh&???

    23 декабря 2010 г. 6:54
  • Все можно, через Get-MailboxStatistics

    Я делаю примерным скриптом, который отсылает сразу на почту текстовый файл

     

    $FromAddress = "from@domain.ru"

    $ToAddress ="to@domain.ru"

    $MessageSubject = "Mailbox Size Report"

    $MessageBody ="Attached is the current list of mailbox sizes."

    $SendingServer = "mail.domain.ru"

    $Attache = "C:\Temp\mailboxes.txt"

     

    Get-MailboxStatistics -Database "server\First Storage Group\Mailbox Database" | Sort-Object TotalItemSize -Descending | fl DisplayName,@{label="Размер(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount,LastLoggedOnUserAccount,LastLogonTime > $Attache

     

    Start-Sleep 5

     

    $SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody

    $Attachment = New-Object Net.Mail.Attachment($Attache)

    $SMTPMessage.Attachments.Add($Attachment)

     

    $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer

    $SMTPClient.Send($SMTPMessage)

     

    23 декабря 2010 г. 8:37
  • Все можно, через Get-MailboxStatistics

    Я делаю примерным скриптом, который отсылает сразу на почту текстовый файл

     

    Get-MailboxStatistics -Database "server\First Storage Group\Mailbox Database" | Sort-Object TotalItemSize -Descending | fl DisplayName,@{label="Размер(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount,LastLoggedOnUserAccount,LastLogonTime 

    опять не то, вы получаете только размер почтового ящика и количество сообщений в нем....
    23 декабря 2010 г. 9:27
  • еще раз уточню: нужно получить объем не всех сообщений в почтовом ящике и их количество, а только сообщений удовлетворяющих определенные условия - общий объем сообщений определенного размера (например попадающих в диапозон 1Мб-5Мб) и полученных в определенный период времени (например полученных после 01.11.2010 и до 15.11.2010)
    23 декабря 2010 г. 9:32
  • такое ощущение, что просто никому  не хватает смелости сказать - "нет, нельзя")))
    23 декабря 2010 г. 14:44
  • Почему "нельзя"? Наверняка можно. Просто задача уж очень специфическая... Я посоветовал бы поискать решение на форумах по PS. К примеру, "трупы" я ловлю следующим скриптом (те ящики, к которым не подключались более 2х месяцев):

    Get-MailboxStatistics | Where { ($_.ObjectClass –eq "Mailbox" ) -and ( $_.LastLogonTime -lt (get-date).adddays(-70) ) -and ( $_.LastLogonTime -gt (get-date).adddays(-900) ) } | Sort-Object TotalItemSize -Descending | ft @{label="User";expression={$_.DisplayName}},@{label="Total Size (MB)";expression={$_.TotalItemSize.Value.ToMB()}},@{label="Items";expression={$_.ItemCount}},@{label="Storage Limit";expression={$_.StorageLimitStatus}} -auto

    Если Вы что-то накопаете, то опубликуйте здесь. Это будет всем полезно.
    23 декабря 2010 г. 17:30
  • Теоретически процесс будет выглядеть вот так

    1. выгружаем ящик пользователя в PST

    2. каким то образом считаем что у него в письмах

    3. берем новый ящик.

    в общем мрак...

    Практически единственным способом будет запуск скрипта по расписанию в обязанности которого будет

    1. с хаба берем информацию по сообщениям которые получил пользователь за определенный период

    2. пишем количество сообщений (входящие и исходящие отдельно) в некую базу

    3. потом думаем как будем обрабатывать полученный результат.

     

    только так.

    Иного метода я не могу представить.

    PS ну очень специфичная задача....


    blog.wadmin.ru
    27 декабря 2010 г. 11:21
  • Теоретически процесс будет выглядеть вот так

    1. выгружаем ящик пользователя в PST

    2. каким то образом считаем что у него в письмах

    3. берем новый ящик.

    в общем мрак...


    blog.wadmin.ru

    Не понял в чем смысл этих действий. Зачем брать нужные цифры из PST (придумывать как это сделать)? Я думаю, придумать как их брать непосредственно из базы задача не сложнее, вернее предложенный вариант вряд ли проще...

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

    Я для себя сделал следующие выводы:

    1. Стандартным набором командлетов EMS это сделать нельзя.

    2. Но возможность такая существует , так как Outlook  может сортировать сообщения и по размеру и по дате получения. 

    3. Видимо решение достаточно сложно и это задача програмирования (не силен в програмирование и могу только предположить что нужно создавать новые командлеты). 

     

    27 декабря 2010 г. 12:12
  • Я думаю, придумать как их брать непосредственно из базы задача не сложнее

     

    Брать из базы. Поделитесь...

    Получить из базы можно только

    get-mailboxstatistics

    get-mailboxfolderstatistics

    они выдадут только состояние ящика и список папок. Залезть в содержимое ящика без назначения прав и копания с COM объектом new-object -com Outlook.Application

    но это опять же слишком накладно по ресурсам и правильнее все же использовать второй вариант

    Относительно того что надо держать статистику с момента создания базы, позволю себе не согласитьсяю

    У вас задача получать данные сколько получено за период "Например общий объем сообщений полученных за последние несколько месяцев?"

     


    blog.wadmin.ru
    27 декабря 2010 г. 13:15
  • Если бы было чем поделится, я бы не создал это обсуждение:)

    27 декабря 2010 г. 14:07
  • думаю на скриптах можно написать, но я бы посоветовал использовать продукт Quest MessageStats. Единственное нужно дать send as и receive as права на учетку на все мейлбоксы для аудита всех мейлбоксов. Триалка 30 дневная без лимитов кажется.
    В ПоШике можно написать все...только нужно знать как и что писать

    • Помечено в качестве ответа Roman Kulikovsky 29 декабря 2010 г. 15:02
    29 декабря 2010 г. 14:03