【发布时间】:2015-04-02 01:24:14
【问题描述】:
抱歉标题不好,但我无法简洁地描述这个。
我编写了一个 Powershell 脚本,它将带有特定附件的电子邮件发送到 CSV 中的用户列表。脚本做了它应该做的事情。我正在导入 CSV 并将其传送到 ForEach-Object。例如:
Import-Csv $csvFile | ForEach-Object{Send-MailMessage -To $($_.email) -Attachments $attachPath$($_.attachment) -SmtpServer $mailServer -Credential $credential -UseSsl $subject -Port $mailServerPort -Body "Hello $($_.name),$body" -From $sender -BodyAsHtml }
同样,这按预期工作。我遇到的问题是,如果出现错误,我不知道它发生在循环的哪个迭代中。
我已经弄清楚如何使用以下方法将错误传递到文件:
Import-Csv $csvFile | ForEach-Object{Send-MailMessage -To $($_.email) -Attachments $attachPath$($_.attachment) -SmtpServer $mailServer -Credential $credential -UseSsl $subject -Port $mailServerPort -Body "Hello $($_.name),$body" -From $sender -BodyAsHtml } 2>> error.txt
但是,这并没有给我任何关于它失败的 CSV 行的具体信息。
根据 Microsoft 的 Send-MailMessage Cmdlet 文档,它不提供任何输出。
如果它只打印 $_.email 以及 error.txt 中的错误,我会很高兴,但我尝试过的一切都不起作用。
任何帮助将不胜感激。
【问题讨论】:
标签: powershell foreach