首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Exchange Server > 如何使用Powershell脚本监控Exchange2010(二) 企业内部邮件流量的监控 > 正文

如何使用Powershell脚本监控Exchange2010(二) 企业内部邮件流量的监控

出处:http://www.cnblogs.com/rogerzhang 作者:rogerzhang 时间:2012-5-16 11:50:08

每个Exchange的管理员或者都遇到过这样的问题。对外,一般情况下,每家公司的邮件对外出口只有一个,这样比较容易管理,容易部署邮件防火墙,一般此类的防火墙都能提供邮件出入站的监控功能。可是针对内部邮件流我们没有办法知道,因为微软没提供此类的工具。如果没有此类数据的话,我们就无法准确的评估hub transport 服务器的负载和load balance是否工作正常。特别针对有多个site的情况下。

思路:我一直强调思路是因为,其实脚本很好写,脚本只是POWERSHELL的功能上的延伸。但是如果你没有思路,你将毫无头绪。言归正传,在Exchange2010的powershell里有没有针对邮件走向的查询命令呢,答案是肯定的,那就是: Get-MessageTrackingLog

A unique message tracking log exists on each computer that has the Hub Transport server role, the Mailbox server role, or the Edge Transport server role installed. The message tracking log is a comma-separated value (CSV) file that contains detailed information about the history of each e-mail message as it travels through an individual server.

经常使用powershell命令来管理exchange的同学对这个命令肯定不会陌生,我们经常使用这条命令来查询邮件从哪里来往哪里去。

比如

Get-MessageTrackingLog -Start "03/13/2010 09:00:00" -End "03/15/2010 17:00:00" -Sender john@contoso.com
(注意,默认情况下message tracking log 在hub server中只保留一个月时间,像这样查询去年的邮件是不可能的)
命令的意思是查询2010年3月13到15日之间,由john@contoso.com这个账号发出的邮件。
当然我们也可以加入其他参数来使查询更加准确。
Get-MessageTrackingLog [-DomainController <Fqdn>] [-End <DateTime>] [-EventId <String>] [-InternalMessageId <String>] [-MessageId <String>] [-MessageSubject <String>] [-Recipients <String[]>] [-Reference <String>] [-ResultSize <Unlimited>] [-Sender <String>] [-Server <ServerIdParameter>] [-Start <DateTime>]
这个命令功能看起来非常强大,我们可否利用它来查询邮件流?当然可以。
来看看我的思路吧,前提:
1. 每封邮件都有唯一的MessageTrackingLog(以下简称MTL)
2. 发送给多人也只有一个MTL
3. 存在时间30天
如果我们把一天时间内,在这台hub服务器上发送和接收的所有邮件做个记数不就可以知道有多少邮件被发送和接收了么。
所有命令如下:
(Get-MessageTrackingLog –server $server -Start $yesterday -End $rundate -ResultSize unlimited -EventId send | Measure-Object).count
注意-enventid send 这个参数,表示所有发送的事件,如果不强调这个参数就是显示所有事件的邮件,一定要注意!

关键点:如何表示$yesterday这个变量。

$today = get-date 
$rundate = (get-date).tostring("yyyy\-MM\-dd")

$yesterday = $($today.adddays(-1)).toshortdatestring()

大家可以试试以上这三个变量在PS里的结果有啥区别。

接下去就是定位$server,其实也很容易,大家还记得foreach这个工能吧? 可以将$servers = get-transportserver 输出的结果用foreach来循环。


$today = get-date 
$rundate = (get-date).tostring("yyyy\-MM\-dd")
 
$yesterday = $($today.adddays(-1)).toshortdatestring()
 
$filedate = (get-date).tostring("yyyyMMdd_hhmmss")
 
$msg = "this script is running at $today"
 
$servers = get-transportserver
 
foreach ($server in $servers)
 
{
 

$send =(Get-MessageTrackingLog -server $server -Start $yesterday -End $rundate -ResultSize unlimited -EventId send | Measure-Object).count 
$receive = (Get-MessageTrackingLog -server $server -Start $yesterday -End $rundate -ResultSize unlimited -EventId receive | Measure-Object).count
 
$msg = $msg + "
 
<br>$server sent $send emails, received $receive emails.</br>
 
"
 
}

# SMTP 
$nSmtpserver = "自己填,下同"
 
$nFrom = ""
 
$nto = "
 
$nSubject = ""

# email report 
send-mailmessage -bodyashtml -subject $nSubject -Smtpserver $nSmtpserver -From $nFrom -To $nTo -body $Msg

来看看输出的效果

image

还不错,当然还可以美化一下,外加归类。大家也可以看到在同一个SITE中的邮件流量基本相同,符合负载均衡的工作方式。

相关文章 热门文章
  • 如何使用Powershell脚本监控Exchange2010(一) 数据库Mount状态的监控
  • 如何使用Powershell脚本监控Exchange2010-前言
  • Exchange 2000 Server 常见问题(四)
  • Exchange 2000 Server 常见问题(一)
  • Exchange 2000 Server 常见问题(三)
  • Exchange 2000 Server 常见问题(五)
  • Exchange 2000 Server 常见问题(二)
  • 部署Exchange Server 2003问题集(1)
  • Telnet到端口25以测试SMTP通信
  • 限制Exchange用户从Internet收发邮件
  • Exchange Server管理与设定(一)
  • 使用Exchange 2000 Server 构建多域名邮件系统
  • 虚拟内存碎片的检测和EXCHANGE的内存优化
  • Exchange Server 公用程序(一)
  • 自由广告区
     
    最新软件下载
  • Acronis Disk Director Server 10 正式..
  • Exchange Server 2010 SP2 正式版
  • WinWebMail 3.8.1.5 企业版
  • WinWebMail 3.8.1.5 标准版
  • win2003 exchange2003 迁移到win2008r...
  • exchange 2003迁移到exchange 2010图文..
  • Exchange 2003 迁移至Exchange 2010 完..
  • Acronis Disk Director 10
  • Paragon Partition Manager 7.0汉化版
  • Password Expiration Notifier 2.0
  • Exchange Server 2003/7升级到Exchang...
  • Exchange Server 2010安全性-防垃圾邮...
  • 今日邮件技术文章
  • 如何使用Powershell脚本监控Exchange2...
  • 如何使用Powershell脚本监控Exchange2...
  • 如何使用Powershell脚本监控Exchange2...
  • Exchange 2010批量删除邮件
  • Exchange2010 删除与重新安装问题
  • Exchange 2010删除离线Exchange服务器...
  • 通过Exchange 的 Powershell批量创建A...
  • Exchange应用新地址策略后如何更改Ou...
  • Exchange 2010部署过程中出现错误之二...
  • Exchange 2010部署过程中几个错误之一...
  • Exchange server 2010 Event ID 106错...
  • 实现OWA 2010通过短信方式发送邮件提醒..
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们
    版权所有:邮件技术资讯网©2003-2016 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备09060656号