郵件收發數量統計功能是Exchange中一項很是實用的功能,它能夠統計出在某一個時間段內,全部用戶的郵件收發數量、單個用戶的郵件收發數量、收發明細等等服務器
在作郵件收發數量統計以前,咱們首先來確保Exchange啓用了郵件跟蹤日誌(默認是啓用的),打開Exchange管理控制檯,如圖打開HUB服務器cqexcashub01和cqexcashub02的屬性ide
在【日誌設置】選項卡中,確保【啓用郵件跟蹤日誌】前面的勾已經勾選測試
爲了驗證統計的準確性,在測試以前,咱們先向外部發送幾封郵件,從下圖能夠看到用戶jqq(蔣慶秋)向QQ郵箱發送5封;用戶rb(任波)向QQ郵箱發送了2封spa
用戶jmc(蔣茂春)向163郵箱發送了3封3d
而後再經過外部郵箱,向內部用戶發送幾封郵件日誌
這裏用戶jqq(蔣慶秋)收到2封blog
用戶rb(任波)收到3封排序
用戶jmc(蔣茂春)收到1封事件
那麼先來簡單作個統計ip
發送 | 接收 | |
jqq(蔣慶秋) | 5 | 2 |
rb(任波) | 2 | 3 |
jmc(蔣茂春) | 3 | 1 |
合計 | 10 | 6 |
接下來在Exchange Management Shell中經過一系列的統計,將統計結果和上面表格中的數值進行對比,看可否對得上
咱們先來統計11月27號這一天的郵件發送總量,因爲個人環境中有2臺HUB服務器,Exchange會隨機選擇這2臺HUB服務器投遞郵件,因此須要分別對cqexcashub01和cqexcashub02進行統計
Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send -Server cqexcashub01 | Measure-object
Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send -Server cqexcashub02 | Measure-object
-Start | 起始時間 | 月/日/年 時:分:秒 |
-End | 結束時間 | |
-EventID | 事件 | Send(發送事件)、Receive(接收事件) |
-Server | HUB服務器 | |
Measure-object | 計算總和 | 去掉能夠顯示明細 |
從兩次命令返回的Count值看出,cqexcashub01發送了6封,cqexcashub02發送了4封,相加的結果等於10,說明總數是對得上的
若是須要查看2臺HUB服務器的發送明細,能夠去掉 Measure-object 參數
Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send -Server cqexcashub01
Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send -Server cqexcashub02
每次都要輸入兩次命令實在是太麻煩,那麼來作個命令傳遞,先用 Get-ExchangeServer cqexcashub* 獲取到2臺HUB服務器,而後再將返回的值傳遞給 Get-MessageTrackingLog 命令
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send | Measure-object
最後Count值爲10,方便多了
統計11月27日每位用戶分別發送的郵件數量
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send | Group-Object –Property sender | Select Name,Count | Sort Count -Descending
Group-Object –Property sender | 按發件人分組 |
Select Name,Count | 篩選出Name和Count這兩列 |
Sort Count -Descending | 對Count的值進行排序 |
統計11月27日內部用戶郵件接收總量
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId Receive | Measure-object
能夠看到經過此命令統計出來的接收總數量爲16封,可咱們內部用戶只收到了6封啊,這顯然不對,去掉 Measure-object 參數後再看,發現QQ郵箱和163郵箱也在統計範疇內
將命令修改一下
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId Receive | Where {$_.Recipients -like "*@excontoso.tk"} | Measure-object
經過 Where {$_.Recipients -like "*@excontoso.tk"} 對收件人列作一個篩選,將內部郵箱篩選出來,現再Count值就徹底吻合了
統計11月27日每位用戶分別接收的郵件數量
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId Receive | Group-Object –Property Recipients | Where {$_.Values -like "*@excontoso.tk"} | Select Values,Count | Sort Count –Descending
對收件人進行分組後,一樣要篩選出內部郵箱
統計11月27日用戶jqq發送的郵件數量
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId send -Sender "jqq@excontoso.tk" | Measure-object
去掉 Measure-object 能夠逐一顯示用戶jqq所發送的郵件
統計11月27日【19916914@qq.com】這個QQ郵箱的接收郵件數量,以及向這個郵箱發送過郵件的全部用戶
Get-ExchangeServer cqexcashub* | Get-MessageTrackingLog -Start "11/27/2012 00:00:00" -end "11/28/2012 00:00:00" -EventId Receive -Recipients "19916914@qq.com" | Measure-object
去掉 Measure-object 參數便可統計到向【19916914@qq.com】發送過郵件的全部用戶