如何通过measure-command发送电子邮件

时间:2015-10-16 13:37:44

标签: email powershell powercli

我正在寻找通过电子邮件发送 measure-command 命令输出的方法。

我有一个运行vmfs.unmap命令的脚本,我想使用measure-command告诉我们需要多长时间,然后在完成后将结果通过电子邮件发送给我们。

到目前为止,我有:

Measure-Command {.\VMware_vmfsunmap.ps1}

输出:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 11
Milliseconds      : 913
Ticks             : 119139896
TotalDays         : 0.000137893398148148
TotalHours        : 0.00330944155555556
TotalMinutes      : 0.198566493333333
TotalSeconds      : 11.9139896
TotalMilliseconds : 11913.9896

我无法弄清楚如何将输出变成电子邮件。 我已经尝试将其输入send-mailmessage,但它没有用。

我可以使用Out-File将其输出到txt文件中,但之后我不确定如何将该文本添加到电子邮件正文中。

我尝试添加一个说

的变量
$body = c:\scripts\output.txt

然后

Send-MailMessage -From "vmfsunmap" -To "ME" -Subject "test vmfs unmap email" -Body **$Body** -SmtpServer smtpserver.com

但这只是打开了txt文件而没有将它附加到正文中。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

我认为Body-parameter必须是一个字符串,所以请尝试将输出汇总到Out-String,看看是否适合你。

Measure-Command {.\VMware_vmfsunmap.ps1} | Out-String

差异可以用这样的东西来验证;

(Measure-Command {.\VMware_vmfsunmap.ps1} | Out-String).GetType().FullName

应输出 System.String

(Measure-Command {.\VMware_vmfsunmap.ps1}).GetType().FullName

应输出 System.TimeSpan