Windows 在计划程序中自动运行时,PowerShell脚本未正确通过电子邮件发送Excel报告文件
当我手动运行PowerShell脚本时(通过使用PowerShell解释器执行它的.bat文件),它会正确执行SQL查询并创建Excel文件并通过电子邮件发送 如果我将其自动化—每晚通过Windows作业调度器运行带解释器的.bat文件—则发送电子邮件时不带该文件 在这里复制代码很困难,因为我用lambda函数和所有函数制作了一个很好的框架许多函数,但通常: $ExcelWorkBook.SaveAs($Filename) $ExcelWorkBook.Close() $ExcelApp.Quit() (……) 睡眠-500秒 (……) $MailMessage.Attachments.Add($Filename) $SMTP.Send($MailMessage) 我听说Excel实际上不支持GUI较少的自动化(windows任务调度器),但这实际上通过一个不同的框架对我有效Windows 在计划程序中自动运行时,PowerShell脚本未正确通过电子邮件发送Excel报告文件,windows,excel,powershell,scheduled-tasks,task,Windows,Excel,Powershell,Scheduled Tasks,Task,当我手动运行PowerShell脚本时(通过使用PowerShell解释器执行它的.bat文件),它会正确执行SQL查询并创建Excel文件并通过电子邮件发送 如果我将其自动化—每晚通过Windows作业调度器运行带解释器的.bat文件—则发送电子邮件时不带该文件 在这里复制代码很困难,因为我用lambda函数和所有函数制作了一个很好的框架许多函数,但通常: $ExcelWorkBook.SaveAs($Filename) $ExcelWorkBook.Close() $ExcelApp.Qui
如果无法从PowerShell以不同的方式生成Excel文件,或者如何在PowerShell中轻松生成和发送电子邮件报告,我可以如何使其正常工作?@Dan是的,我可以。CSV对于公司报告来说是一种非常糟糕的报告格式,没有颜色,没有格式,什么都没有。如果经理在收件箱中发现这一点,他会受到侮辱
@VonPryz-但手动操作它可以工作!所以说调试调度?如果您运行的是windows 2008或更高版本,那么作业可能在session0中执行(请阅读microsoft的session0隔离) 您必须为会话0创建桌面文件夹,请在此处阅读更多内容: Windows 2008服务器x64 请创建此文件夹 C:\Windows\SysWOW64\config\systemprofile\Desktop Windows 2008服务器x86 请创建此文件夹 C:\Windows\System32\config\systemprofile\Desktop 然后重新启动计算机并重试。
我通过任务调度器和powershell实现了无GUI的Excel自动化,通过创建这些文件夹来实现。您真的需要Excel文件吗?你能为你的报告制作一个更简单的CSV文件吗?一步一步地调试你的设置。首先,将任务设置为仅发送电子邮件。如果有效,请添加附件。如果有效,那么电子邮件部分就可以了。将任务设置为创建不带SQL的简单Excel文档,并将其保存到某个目录。如果有效,试着发电子邮件。通过这种方式,您应该能够发现流程的哪一部分出现了问题:Excel、Sql、Mail或完全不同的东西。