我正在寻找通过电子邮件发送 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文件而没有将它附加到正文中。
有人有任何建议吗?
答案 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