Когда я запускаю сценарий PowerSheel вручную — через файл .bat, который выполняет его с помощью интерпретатора PowerShell, — он правильно выполняет запрос SQL, создает файл Excel и отправляет его по электронной почте.
Если я автоматизирую это - запускаю файл .bat, который запускает файл PowerShell с интерпретатором через планировщик заданий Windows каждую ночь - тогда электронное письмо отправляется без файла.
Трудно скопировать код здесь, потому что я сделал хороший фреймворк, много функций с лямбда-функциями и все такое, но в целом:
$ExcelWorkBook.SaveAs($Filename)
$ExcelWorkBook.Закрыть()
$ExcelApp.Выйти()
(...)
Сон - секунд 500
(...)
$MailMessage.Attachments.Add($Filename)
$SMTP.Отправить($MailMessage)
Я слышал, что Excel на самом деле не поддерживает автоматизацию без графического интерфейса (планировщик задач Windows), но на самом деле это работало для меня через другую структуру.
Что я могу сделать, чтобы заставить его работать, если не могу, как я могу генерировать файлы Excel из PowerShell другим способом или как я могу просто создавать и отправлять отчеты по электронной почте в PowerShell?