我需要PowerShell脚本从输出文件中捕获错误FAILED,如果状态为FAILED,则将电子邮件发送到DL列表,主题为失败,并且电子邮件正文中应该有输出文件格式原样。我坚持写if
声明。请帮帮我。
输出文件的位置是D:\ logs。
输出文件的格式:
process_id : 1 STATUS : FAILED RULE_ID : 44 RULE_NAME : OEBS-1 LAST_UPDATE_DATE : 1/4/2017 11:37:02 AM
答案 0 :(得分:-1)
import-csv d:\logs\logfile.csv | where-object { $_.STATUS -eq "FAILED" } |
send-mailmessage -from "User01 <user01@example.com>" -to "User02 <user02@example.com>",
"User03 <user03@example.com>" -subject "Sending the Attachment" -body
"Forgot to send the attachment. Sending now." -Attachments "data.csv"
-priority High -dno onSuccess, onFailure -smtpServer smtp.fabrikam.com
我使用了此处示例2中的send-mailmessage:https://msdn.microsoft.com/en-us/powershell/reference/3.0/microsoft.powershell.utility/send-mailmessage?f=255&MSPPError=-2147217396。这给出了使用许多send-mailmessage参数的示例。您可以使用您需要的那些,或修改以添加您想要的内容。
**代码的格式可能不合适。我试着让它保持整洁,并且在一个页面上没有滚动。我没有像在实际的PowerShell代码中那样用`来表示新行。
$failed = import-csv d:\logs\logfile.csv | where-object {$_.STATUS -eq "FAILED"}
send-mailmessage -from failedjob@fabrikam.com -to dl@fabrikam.com -subject Failed -body $failed -smtpserver mailserverthatwillaccept.fabrikam.com
这是另一种选择。
**根据Ansgar的评论编辑import-csv
谢谢,蒂姆。