在平常管理的時候,常常會遇到這樣的狀況,領導想知道每一個郵箱天天發送了多少封郵件?咱們的服務器一天或者一個月發送多少郵件?又或者是服務器一天有多少發送失敗的郵件,發往某一個地址有多少數量?近期平均郵箱數據庫增加量是多少?這些部分可用Exchange圖形實現部分不能實現,或者須要藉助第三方工具來實現。統計收發郵件數量等這些有很博客裏面已經寫的很詳細了,在這裏重複介紹,下面我重點介紹如何統計郵箱數據庫增加狀況。c++
統計郵箱數據庫服務器增加狀況能夠用這個腳原本實現:數據庫
# From date must be a MONDAY
$From = Get-Date "23/05/2011"
$To = $From.AddDays(7) windows
[Int64] $intTotalSentSize = $intTotalSent = 0
[Int64] $intTotalRecSize = $intTotalRec = 0 服務器
Write-Host "From, To, # Sent, Size Sent, # Received, Size Received" ide
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))命令行
此腳本能夠按周統計每一個周的接收和發送的郵件的總的大小,從而推測出天天郵件收發數據量的大小blog
這個腳本執行起來較簡單,能夠直接執行,時間能夠根據須要更改get
使用方法,
一、 將腳本文件「TotalEmailsSentReceivedPerWeek.ps1」複製到 郵箱數據庫服務器C:\windows\system32文件夾下;
二、 以管理員身份打開Exchange命令行管理工具,鏈接到服務器後,輸入TotalEmailsSentReceivedPerWeek.ps1,執行便可。
效果以下,依次顯示起始時間,結束時間,發送,發送大小,接收,接收大小。
(時間是按一整週的時間來統計,測試環境下只在13年1月8號和9號發過郵件,故在2013/1/5,2013/1/11時間段有數據,而且發送和接收大小的單位爲MB,故大小顯示爲零。)
統計出每週的郵件數據增加量以後,就能夠推測天天發送郵件的數據量,從而對郵件大小設置,數據量增加狀況以及存儲配置進行合理的規劃