使用PowerShell将csv文件转换为Excel

我正在运行一个将CSV文件转换为Excel的PowerShell脚本。 当我手动运行它工作正常,但是当我通过计划的任务运行它失败。 这是我得到的错误:

使用“1”参数调用“Open”exception:“Workbooks类的打开方法失败”在C:\ PowerShell \ Weekly \ WeeklyReport.ps1:337 char:34 + $ workbook = $ excel.Workbooks.Open << <<($ csvFilePath)+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:ComMethodTargetInvocation

我在计划任务中使用与login时相同的帐户。我也有计划的任务使用本地pipe理员帐户,但仍然有同样的问题。 我实际上启动的是一个VB脚本,它反过来启动一个.bat文件,列出几个PowerShell脚本。 VB脚本用于隐藏窗口,使其在运行时不显示。 如果我手动运行VB脚本它运行良好,但通过计划的任务运行它失败,我列出的错误。 我正在使用Windows Server 2008,并安装了Office 2003。 以下是失败的PowerShell脚本部分:

$excel = New-Object -ComObject excel.application $excel.visible = $False $excel.displayalerts=$False $workbook = $excel.Workbooks.Open($csvFilePath) $workSheet = $workbook.worksheets.Item(1) 

这是失败的

 $workbook = $excel.Workbooks.Open($csvFilePath) 

任何帮助将不胜感激。 谢谢!

好吧,所以我发现我的问题。 我去了dcomcnfg。 由于我的应用程序“Excel”是32位的,我在一台64位的机器上运行,所以我不得不午餐的32位版本:

c:\ Windows \ SysWOW64> mmc comexp.msc / 32

一旦我在那里,我进入了组件服务 – >计算机 – >我的电脑 – > DCOMconfiguration。 在该列表中,我喜欢Microsoft Excel应用程序,并进入属性。 在安全选项卡中,我点击每个旁边的“自定义”单选button,然后点击每个编辑button,然后添加我正在执行计划任务的用户帐户。 完全访问一切。 在“身份”选项卡下,我点击了“此用户”的广播圈,并再次为用户运行任务的信息。 我可能不需要这么做,我相信只有一件事情能够解决这个问题,但是我不确定哪一个可以做,所有我都做了。 它的工作。