分类: 系统运维
2017-11-16 18:03:33
【摘要】
在企业中经常会需要对邮件收发进行统计和查询用户使用情况,这时利用 PowerShell便可轻松实现多种形式的分类计数。
【正文】
在做邮件收发数量统计之前,首先要确保Exchange启用了邮件跟踪日志(默认是启用的),打开Exchange管理控制台,打开HUB服务器的属性,在【日志设置】选项卡中,确保【启用邮件跟踪日志】前面的勾已经勾选。
1、查询发送邮件的总量(一天)
Get-ExchangeServer mail* | Get-MessageTrackingLog [-ResultSize unlimited] -Start "12/01/2013 00:00:00" -End "12/02/2013 00:00:00" -EventId send |measure-object
Mail*为hub服务器的主机名(通配mail1和mail2)
-ResultSize unlimited参数为显示所有,可去掉。
-Eventid可包括BadMail、Defer Deliver、DSN、Expand、Fail、PoisonMessage、Receive、Redirect、Resolve、Send、Submit 和 Transfer。
加上Measure-Object为计算对象的数字属性以及字符串对象总和。去掉则可以显示明显详情。
2、邮件发送量用户排名(一天)
Get-ExchangeServer mail* | Get-MessageTrackingLog [-ResultSize unlimited] -Start "12/01/2013 00:00:00" -End "12/02/2013 00:00:00" -EventId send | Group-Object -Property:sender |select name,count| sort count –Descending
Group-Object命令进行分组统计;计算Count的值,然后在把Count进行分组,再使用select进行筛选。
sort count -Descending对邮件发送量进行一个降序排序;sort count -Unique对邮件发送量进行一个升序排序。
3、查询用户最后登陆时间,并排序
Get-ExchangeServer mail* |Get-MailboxStatistics | sort lastlogontime –Descending
Get-MailboxStatistics查询用户最后登陆时间。
sort lastlogontime –Descending对用户登陆时间进行降序排序。
4、查询某个邮箱的发送情况。
Get-ExchangeServer mail* | Get-MessageTrackingLog [-ResultSize unlimited] -Start "12/01/2013 00:00:00" -End "12/02/2013 00:00:00" -EventId send -Sender "a@contoso.com" |measure-object
5、查询内部用户收件总数
Get-ExchangeServer mail* | Get-MessageTrackingLog [-ResultSize unlimited] -Start "12/01/2013 00:00:00" -End "12/02/2013 00:00:00" -EventId Receive | Where {$_.Recipients -like "*@contoso.com"} |measure-object
Where {$_.Recipients -like "*@contoso.com"}对收件人列做一个筛选,筛选出内部用户
6、对内部用户按收件数排序
Get-ExchangeServer mail* | Get-MessageTrackingLog [-ResultSize unlimited] -Start "12/01/2013 00:00:00" -End "12/02/2013 00:00:00" -EventId Receive| Group-Object –Property:Recipients | Where {$_.Values -like "*@contoso.com"} | Select Values,Count | Sort Count –Descending