使用功能性应用程序ID无法为WScript.CreateObject(“ Excel.Application”)

时间:2018-09-17 18:40:56

标签: excel wsh

  • Maestro使用功能性应用程序ID运行,并调用Powershell脚本文件
    • PS脚本文件调用一个批处理文件-Run.bat
      • 该批处理文件将调用Windows脚本文件(cscript.exe ...xxx.wsf
        • WSF运行VBS程序
          • 它调用Excel宏。

但是VBS程序在尝试创建Excel对象的步骤中失败,并显示消息“无法创建名为excel.Application的对象”。

当用户手动执行run.bat文件时,此脚本有效。

当maestro运行Run.batch文件时,使用功能性应用程序ID凭据登录服务器时,Maestro也可以正常工作。

请帮助为什么maestro无法在非交互模式下创建excel对象,即运行该进程的用户未主动登录到服务器。

run.bat文件中的代码:

cscript.exe ..\..\run.wsf

run.wsf文件中的代码:

<script language="vbscript" src="..\Run.vbs"></script>

run.vbs文件中的代码:

Dim xlApp, xlBook
Set xlApp = WScript.CreateObject("Excel.Application") -- Program fails here
Set xlBook = xlApp.Workbooks.Open(fnGetAbsolutePath(xlsFile))

1 个答案:

答案 0 :(得分:0)

我发现了问题。在该服务器中,Excel dcom-identity设置已设置为“交互式用户”,这导致使用交互式用户的ID运行非交互式excel请求。当我更改以下设置时,它起作用了。

1:开始->运行并输入'DCOMCNFG'

2:打开“ DCOM Config”并找到“ Microsoft Excel应用程序”

3:将其身份设置为“启动用户”。