在日常管理的時候,經常會遇到這樣的情況,領導想知道每個郵箱每天發送了多少封郵件?我們的服務器一天或者一個月發送多少郵件?又或者是服務器一天有多少發送失敗的郵件,發往某一個地址有多少數量?近期平均郵箱數據庫增長量是多少?這些部分可用Exchange圖形實現部分不能實現,或者需要藉助第三方工具來實現。統計收發郵件數量等這些有很博客裏面已經寫的很詳細了,在這裏重複介紹,下面我重點介紹如何統計郵箱數據庫增長情況。
統計郵箱數據庫服務器增長情況可以用這個腳本來實現:
# From date must be a MONDAY
$From = Get-Date "23/05/2011"
$To = $From.AddDays(7)
[Int64] $intTotalSentSize = $intTotalSent = 0
[Int64] $intTotalRecSize = $intTotalRec = 0
Write-Host "From, To, # Sent, Size Sent, # Received, Size Received"
Do
{
Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -Start $From -End $To | ForEach {
# Sent E-mails
If ($_.EventId -eq "RECEIVE" -and $_.Source -eq "STOREDRIVER")
{
$intTotalSentSize += $_.TotalBytes
$intTotalSent++
}
# Received E-mails
If ($_.EventId -eq "DELIVER")
{
$intTotalRecSize += $_.TotalBytes
$intTotalRec++
}
}
# Convert the size to MB and round it
$intTotalSentSize = [Math]::Round($intTotalSentSize/1MB, 0)
$intTotalRecSize = [Math]::Round($intTotalRecSize/1MB, 0)
# Create a TempTo variable as when we are searching the logs we search up to the next day, but we want to print the day before
$FromSmall = $From.ToShortDateString()
$TempTo = ($To.AddDays(-1)).ToShortDateString()
Write-Host "$FromSmall, $TempTo, $intTotalSent, $intTotalSentSize, $intTotalRec, $intTotalRecSize"
# Reset the variables to do another search
$From = $From.AddDays(7)
$To = $From.AddDays(7)
$intTotalSentSize = $intTotalSent = 0
$intTotalRecSize = $intTotalRec = 0
}
While ($To -lt (Get-Date))
此腳本可以按周統計每個周的接收和發送的郵件的總的大小,從而推測出每天郵件收發數據量的大小
這個腳本執行起來較簡單,可以直接執行,時間可以根據需要更改
使用方法,
1、 將腳本文件“TotalEmailsSentReceivedPerWeek.ps1”複製到 郵箱數據庫服務器C:\windows\system32文件夾下;
2、 以管理員身份打開Exchange命令行管理工具,連接到服務器後,輸入TotalEmailsSentReceivedPerWeek.ps1,執行即可。
效果如下,依次顯示起始時間,結束時間,發送,發送大小,接收,接收大小。
(時間是按一整週的時間來統計,測試環境下只在13年1月8號和9號發過郵件,故在2013/1/5,2013/1/11時間段有數據,並且發送和接收大小的單位爲MB,故大小顯示爲零。)
統計出每週的郵件數據增長量之後,就可以推測每天發送郵件的數據量,從而對郵件大小設置,數據量增長情況以及存儲配置進行合理的規劃