Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Exchange Server (http://forum.oszone.net/forumdisplay.php?f=76)
-   -   [решено] Статистика входящих писем по обслуживаемым доменам (http://forum.oszone.net/showthread.php?t=312152)

meateron 29-02-2016 15:13 2611413

Статистика входящих писем по обслуживаемым доменам
 
Есть ли возможность получить статистику входящих писем по разным обслуживаемым доменам в организации?

ko4evneg 01-03-2016 19:29 2611874

Запустите в EMS скрипт, заменив даты. Он посчитает, единственное, если письмо отправлено было на получателей в двух авторитативных доменах, то объем такого письма посчитается два раза. Скрипт предполагает, что почты вы получаете черех роль HUB транспорт и считает все SMTP подключения (в том числе почтовых клиентов).

Код:

$startdate = (Get-date 01.03.2016)
$enddate = (Get-date 02.03.2016)
$servers = Get-TransportServer
$domains = Get-AcceptedDomain | Where-Object {$_.DomainType -eq 'Authoritative'}
$logs = @()

#Получение логов
ForEach ($srv in $servers) {
    Write-Host "Подсчет логов на $($srv.Name)"
    $logs += Get-MessageTrackingLog -Start $startdate -End $enddate -ResulTSize Unlimited -eventid RECEIVE | `
    Where-Object {$_.EventId -eq 'RECEIVE' -and $_.Source -eq 'SMTP'}| Select-Object MessageId,Timestamp,TotalBytes,Recipients
}

$result = @()
$domresult = New-Object System.Object
ForEach ($domain in $domains) {
    Write-Host "Оценка домена $($domain.DomainName)"
    $sum = ($logs | Where-Object {$_.recipients -match "$($domain.DomainName)"} | Measure-Object -Sum TotalBytes).sum/1024/1024
    $domresult| Add-Member -MemberType NoteProperty -Name 'Domain' -Value "$($domain.DomainName)"
    $domresult| Add-Member -MemberType NoteProperty -Name 'Size (MB)' -Value $sum
    $result += $domresult 
    $domresult = New-Object System.Object       
}

Out-Host -InputObject $result


meateron 02-03-2016 14:24 2612140

Скрипт отработал, единственное, показал объем писем за указанный период. Какой атрибут надо добавить чтобы ещё и количество писем показывал?
По логике, надо count добавлять, или что-то наподобие....

meateron 02-03-2016 16:30 2612185

Код:

$startdate = (Get-date 01.03.2016)
$enddate = (Get-date 02.03.2016)
$servers = Get-TransportServer
$domains = Get-AcceptedDomain | Where-Object {$_.DomainType -eq 'Authoritative'}
$logs = @()

#Получение логов
ForEach ($srv in $servers) {
    Write-Host "Подсчет логов на $($srv.Name)"
    $logs += Get-MessageTrackingLog -Start $startdate -End $enddate -ResulTSize Unlimited -eventid RECEIVE | `
    Where-Object {$_.EventId -eq 'RECEIVE' -and $_.Source -eq 'SMTP'}| Select-Object MessageId,Timestamp,TotalBytes,Recipients
}

$result = @()
$domresult = New-Object System.Object
ForEach ($domain in $domains) {
    Write-Host "Оценка домена $($domain.DomainName)"
    $sum = ($logs | Where-Object {$_.recipients -match "$($domain.DomainName)"} | Measure-Object).count
    $domresult| Add-Member -MemberType NoteProperty -Name 'Domain' -Value "$($domain.DomainName)"
    $domresult| Add-Member -MemberType NoteProperty -Name 'Count' -Value $sum
    $result += $domresult 
    $domresult = New-Object System.Object       
}

Out-Host -InputObject $result

Вот так :)


Время: 00:52.

Время: 00:52.
© OSzone.net 2001-