在日常管理的時候,經常會遇到這樣的情況,上司想知道每個郵箱每天發送了多少封郵件?我們的伺服器一天或者一個月發送多少郵件?又或者是伺服器一天有多少發送失敗的郵件,發往某一個位址有多少數量?近期平均郵箱資料庫增長量是多少?這些部分可用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,執行即可。
效果如下,依次顯示起始時間,結束時間,發送,發送大小,接收,接收大小。