在通过SQL Server作业来实现定时任务时,出现如下错误:
FullyQualifiedErrorId : ComMethodTargetInvocation使用“1”个参数调用“Add”时发生异常:“Microsoft Excel 不能访问文件“D:\Test.xls”。
可能的原因有以下几个: ? 文件名称或路径不存在。 ? 文件正被其他程序使用。 ? 您正要保存的工作簿与当前打开的工作簿同名。” 所在位置 D:\Test.ps1:73 字符: 56
上述定时任务的具体内容是利用PowerShell脚本将Reporting Services中的报表导出为Excel文件,然后将导出的Excel文件合并一个包含多个Sheet的Excel文件。而出现上面错误信息的原因是在PowerShell中创建的Excel Application可以创建Excel文件,但不能读取Excel文件。解决办法如下:
1. 在运行窗口中执行:
MMC comexp.msc
如果操作系统是64位系统,则执行:
MMC comexp.msc /32
2. 在打开窗口中:组件服务 > 计算机 > 我的电脑 > DCOM 配置 节点下找到“Microsoft Excel Application”项,并右键打开属性窗口。
3. 在属性窗口“标识”选项卡中将运行账号选为“交互式用户”(缺省为“启动用户”)。
完成上述操作,发现可成功执行定时作业。