邮件收发数量统计功能是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】发送过邮件的全部用户