其他分享
首页 > 其他分享> > 自动发送Exchange Server 2013使用情况到指定邮箱

自动发送Exchange Server 2013使用情况到指定邮箱

作者:互联网

一、创建PS脚本

1、统计邮箱使用情况

Get-Mailbox –ResultSize Unlimited| Get-MailboxStatistics | ft Displayname,LastLogonTime,ItemCount,TotalItemSize >D:\OPS\report1\stats.csv

使用之前的脚本,导出结果到D:\OPS\report1\stats.csv

2、发送邮件

$user = "mailops@xxxxxxx.com"

$PWord = ConvertTo-SecureString -String "xxxxxxx" -AsPlainText -Force

$cre = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

$att = "D:\OPS\report1\stats.csv"

Send-MailMessage -Subject "邮件系统使用情况汇总" -Body "见附件" -Attachments $att -From $user -To "lutao@xxxxxx.com" -SmtpServer "smtp.xxxxx.com" -Port 25 -Credential $cre -Encoding ([System.Text.Encoding]::UTF8)

上边脚本的解释:

user 发件邮箱

PWord 发件邮箱密码

cre 将发件邮箱和密码做成授权信息

att 附件路径

Send-MailMessage 发送邮件命令

-Subject 邮件标题

-Body 邮件正文

-Attachments 附件

-From 发件人

-To 收件邮箱

-SmtpServer SMTP地址

-Port SMTP端口

-Credential 发件邮箱和密码授权信息

-Encoding ([System.Text.Encoding]::UTF8) 邮件编码,不加这个中文是乱码

二、设定计划任务

1、拼出计划任务需要执行的命令

右键EMS快捷方式,在属性里把目标复制出来

构成计划任务需要执行的命令行

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'D:\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; D:\OPS\report1\report1.ps1"

上边脚本的解释

我们实际要做的就是调度PowerShell.exe然后使用-Command参数去执行多个语句。这里我们应该注意到,脚本有多行以及每个语句使用分号隔开。我们做的第一件事就是定位到Exchange服务器bin目录下的RemoteExchange.ps1文件,这个文件初始化一些Exchange Shel变量和导入Exchange特殊功能。下一行的脚本使用使用Connect-ExchangeServer调用参数-Auto连接Exchange服务器,允许从本地AD站点中最好的Exchange服务器加载Exchange Management Shell环境。最好,通过Exchange Management Shell执行我们的指定的脚本文件。

2、创建计划任务

在计划任务界面中右键空白处,点击"创建基本任务"

在名称框中输入计划任务的可辨别名称,写入描述,点击"下一步"

设定任务触发器频率,设定每天的频率,可以一天运行多次,点击"下一步"

选择启动程序,下一步

在程序和脚本输入第1步拼出计划任务需要执行的命令,点击"下一步"

 

点击下一步会弹出如下提示框,点击"是"

勾选"当单击完成时打开此任务属性的对话框",点击完成,完成基本任务的创建

确保计划任务运行账户拥有Exchange组织管理访问的权限。同样,当服务器启用了用户账户控制(UAC)时,你可能需要在计划任务选项中,启用最高权限运行计划任务,同时,我们也希望启用不管用户是否登陆都要运行,如下图:

计划任务创建完成

 

 

手动运行任务,右键运行,在邮箱里能看到结果

标签:脚本,Exchange,report1,点击,Server,任务,邮箱,2013
来源: https://blog.51cto.com/lzlutao/2393256