0

当我手动运行 PowerSheel 脚本时 - 通过使用 PowerShell 解释器执行它的 .bat 文件 - 它正确执行 SQL 查询并创建一个 Excel 文件并通过电子邮件发送它。

如果我将其自动化 - 每晚通过 Windows 作业调度程序运行 .bat 文件,该文件使用解释器运行 PowerShell 文件 - 然后发送的电子邮件没有文件。

在这里复制代码很困难,因为我制作了一个很好的框架,其中包含许多具有 lambda 函数和所有功能的深度,但通常:

$ExcelWorkBook.SaveAs($文件名)

$ExcelWorkBook.Close()

$ExcelApp.Quit()

(...)

睡眠 - 秒 500

(...)

$MailMessage.Attachments.Add($Filename)

$SMTP.Send($MailMessage)

我听说 Excel 实际上并不支持无 GUI 自动化(Windows 任务调度程序),但实际上通过不同的框架对我有用。

如果不能以其他方式从 PowerShell 生成 Excel 文件,或者如何在 PowerShell 中轻松生成并通过电子邮件发送报告,我该怎么做才能使其工作?

4

2 回答 2

0

@Dan 是的,我愿意。CSV 对于企业报告来说是一种非常糟糕的报告格式,没有颜色,没有格式,什么都没有。经理在他的收件箱中发现它会受到侮辱。

@VonPryz - 但手动它可以工作!所以你说调试调度?

于 2012-07-30T09:33:41.767 回答
0

如果您运行的是 Windows 2008 或更高版本,那么该作业可能在 session0 中执行(请参阅 microsoft 中的 session0 隔离)。

您必须为 session0 创建桌面文件夹,在此处阅读更多信息:http: //social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91

Windows 2008 Server x64 请将此文件夹设为 C:\Windows\SysWOW64\config\systemprofile\Desktop

Windows 2008 Server x86 请将此文件夹设为 C:\Windows\System32\config\systemprofile\Desktop

然后重新启动机器并重试。我通过任务计划程序和 powershell 使用无 GUI 的 Excel 自动化,通过创建这些文件夹来完成。

于 2012-11-28T22:30:13.957 回答