Добрый день - у меня есть «триггерный файл», который вызывает несколько скриптов для запуска некоторых утренних отчетов. Каждый вызываемый скрипт содержит код, который прикрепляет файл к электронной почте и отправляет (через ComObject). Если я запускаю каждый скрипт по отдельности, то все письма отправляются правильно. Однако, когда я запускаю «файл триггера», отправляется только пара писем, и я не получаю никаких сообщений об ошибках. Есть идеи, что происходит? Я специально заставил триггерный файл запускать сценарии одновременно, чтобы сэкономить время. Но это перегрузка Outlook?
РЕДАКТИРОВАТЬ: обновленный код, чтобы включить блок Try / Catch. Есть 8 сценариев, которые запускаются с использованием этого шаблона. Все 8 успешно завершить Excel открыть / запустить / сохранить. Тем не менее, только некоторые письма отправляются. И даже с этим блоком Try / Catch сообщение об ошибке не отправляется.
#Establish script file locale
$FullPath = “//fullpath/”
$SavePath = “//savepath/”
#Open Excel file
& {
$Excel = New-Object -ComObject excel.application
$Excel.Visible=$False
$Workbook = $Excel.Workbooks.Open($FullPath)
#Run Macro
$app=$Excel.Application
$app.Run("Macro1")
#Save and close Excel
$Excel.Application.DisplayAlerts=$False
$Workbook.SaveAs($SavePath,51)
$Workbook.Close()
$Excel.Quit()
}
#Send email with attachment
Try
{
$EmailSettings=@{
SMTPServer = "smtp"
From = "me@email.com"
To =
@(
"you@email.com"
)
Subject = "Subject"
Attachments = $SavePath
BodyAsHtml = $true
Body =
"<body><p>
Attached is the thing.
</b></p></body>"
}
Send-MailMessage @EmailSettings
}
Catch
{
$Subject = 'ERROR: '+$EmailSettings.Subject
$ErrorMessage = $_.Exception.Message+' '+$_.Exception.ItemName
Send-MailMessage -From me@email.com -To me@email.com -Subject $Subject -SmtpServer smtp -Body $ErrorMessage
}