概述
下面将要介绍的一个脚本同样来自于脚本中心,非常实用,我们可以借助这个脚本来统计每天exchange服务器的sent和received的邮件数量及大小情况。
下载地址:
问题与解答 - Office Total Emails Sent and Received Per Day and Size https://gallery.technet.microsoft.com/office/f2af711e-defd-476d-896e-8053aa964bc5/view/Discussions
下载下来后,我们拷贝到邮件服务器上,打开EMS进行执行即可,在使用之前,有几个地方是需要做修改的。
首先我们需要在脚本的开头修改starttime,就是指定要检查邮件收发的开始日期,比如我想检查2016/1/1到2016/2/26之间的,那么开始日期就是20161/1,如下。
# Initialize some variables used for counting and for output $From = Get-Date "1/1/2016" $To = $From.AddDays(1)
然后我们需要指定结束日期,如下。
While ($To -lt (Get-Date "02/28/2016"))
这个脚本的核心是通过get-messagetrackinglog去检索传输服务器的跟踪日志,统计的结果单位是MB,如下。
Do { # Start building the variable that will hold the information for the day $strEmails = "$($From.DayOfWeek),$($From.ToShortDateString())," $intSent = $intRec = 0 (Get-TransportServer) | Get-MessageTrackingLog -ResultSize Unlimited -Start $From -End $To | ForEach { # Sent E-mails If ($_.EventId -eq "RECEIVE" -and $_.Source -eq "STOREDRIVER") { $intSent++ $intSentSize += $_.TotalBytes } # Received E-mails If ($_.EventId -eq "DELIVER") { $intRec++ $intRecSize += $_.TotalBytes } } $intSentSize = [Math]::Round($intSentSize/1MB, 0) $intRecSize = [Math]::Round($intRecSize/1MB, 0)
上面这段代码不需要修改。
但是也有例外,如果我们的环境中有多个站点,我希望一次只统计一个站点的邮件收发,那么我们可以对命令做略微的调整,如下,我只统计CAS0*开头的服务器。
(Get-TransportServer cas0*) | Get-MessageTrackingLog -ResultSize Unlimited -Start $From -End $To
统计完成后,结果如下。因为我是在实验环境中运行的,所以结果都是零。
实际生产环境经过整理后可以用excel生成图表。
最后
以上就是大意小刺猬为你收集整理的PowerShell-Exchange:统计每天邮件收发的全部内容,希望文章能够帮你解决PowerShell-Exchange:统计每天邮件收发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复