powershell IQY转储脚本失败

时间:2013-10-17 14:35:00

标签: excel sharepoint powershell dump

我目前正致力于自动化PowerShell脚本以转储小型数据库。 数据库可以通过公司Sharepoint访问,我正在利用从所述Sharepoint导出的IQY文件来读取数据库内容。 当我手动运行脚本(即从命令行调用它)时,它没有问题,但是当我尝试从任务计划程序启动脚本时,会引发以下异常:

System.Reflection.TargetInvocationException

生成异常的行是:

$iqy = $xl.Workbooks.Open($query, 2, $true)

其中$ xl是一个新的Excel.Application ComObject,正确创建,$ query是一个包含iqy文件的完整文件路径的字符串。

至于我的配置,我正在尝试使用本地管理员用户(应该启动预定脚本的同一用户)在Windows Server 2008R2上运行我的脚本,该用户也被授权访问Sharepoint。我正在运行Powershell 3.0。我没有加载任何与Sharepoint相关的snapins。

我发现的唯一答案是暗示在IQY文件位置和Sharepoint本身在Excel中授予“信任”。这没有用。 Exception似乎也指向了一个sharepoint问题,但由于脚本在手动启动时运行良好,我无法理解它与Sharepoint有什么关系。 我错过了任务计划程序的一些复杂性吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

没关系,我似乎找到了答案。

如果有人遇到同样的问题,那么无论用户是否登录,Excel Com对象都会出现一个错误,如果您将其设置为运行,则不允许它从任务计划程序运行。 为避免在应该运行脚本的机器上创建以下2个文件夹:

(32位,总是)

C:\的Windows \ system32 \设置\ systemprofile \ Dektop

(64位)

C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面

创建文件夹后,它按预期工作。

来源:http://social.technet.microsoft.com/Forums/windowsserver/en-US/aede572b-4c1f-4729-bc9d-899fed5fad02/run-powershell-script-as-scheduled-task-that-uses-excel-com-object?forum=winserverpowershell