自动发送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