使用功能应用程序 ID 无法为 WScript.CreateObject( "Excel.Application" ) 创建对象


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

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

当用户手动执行 run.bat 文件时,此脚本正在工作。

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

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

运行中的代码.bat文件:

cscript.exe ....run.wsf

运行中的代码.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))

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

1:启动>运行并键入"DCOMCNFG">

2:打开"DCOM配置"并找到"Microsoft Excel应用程序">

3:将其标识设置为"启动用户"。

最新更新