Dis*_*ile 2 excel powershell scheduled-tasks windows-server-2008
我创建了一个简单的powershell脚本,它将创建一个excel实例并保存一个工作簿:
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\Test\foo.xls")
$workbook.SaveAs("C:\Test\bar.xls")
# cleanup code ...
Run Code Online (Sandbox Code Playgroud)
当我直接从powershell运行它时,它工作正常。我创建了一个计划任务来运行它,并且当我设置了“仅在用户登录后才运行”选项集时,它将可以正常运行。
当我更改此选项以无论用户是否登录运行时,尝试打开/保存文件都将失败。我使用的帐户具有正确的权限。我已将帐户设置为“作为服务登录”。
有什么建议么?
小智 7
我为此感到烦恼,不想重写代码。我看到了您的帖子以及其他几个帖子,这些帖子使我快要放弃了。但是,我的坚持得到了回报。我试图让詹金斯(Jenkins)运行脚本来盘点我们的生产环境并将其输出到Excel。我不需要文本文档,因为我正在突出显示与RED不匹配的软件版本,因此需要Excel。
这是对我有用的答案:
您必须创建一个文件夹(在64位Windows上创建一个文件夹):
(总是32Bit)
C:\ Windows \ System32 \ config \ systemprofile \ Desktop
(64位)
C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
某人作为来源提供的链接:
http://www.patton-tech.com/2012/05/printing-from-scheduled-task-as.html
我的消息来源是:
我记得必须在 C# 应用程序中执行类似的操作,当您在 Visual Studio 上构建它时效果很好,但在 CI 服务器上的服务下运行却失败了。我认为这是 Office 自动化本身的限制,Microsoft 根本不建议/支持这样做。请参阅此处的 Office 服务器端自动化注意事项 - http://support.microsoft.com/kb/257757。它显示了问题和替代方案。
就我而言,我不得不放弃 Office Interop,并使用 EPPlus ( http://epplus.codeplex.com/ ) 来处理 Excel。它效果很好,而且速度也快得多。
| 归档时间: |
|
| 查看次数: |
8772 次 |
| 最近记录: |