2014-08-29 48 views
2

我想运行一个VBScript工作正常,但CFExecute抛出一个错误运行VBScript使用CFExecute抛出错误,而是通过命令行

<cfexecute name = "C:\Windows\System32\CScript.exe" 
      arguments = "//NoLogo D:\Excel.vbs D:\test.xls" 
      variable = "data" 
      timeout = "100"> 
</cfexecute> 
<cfdump var="#data#"> 

错误:

Error: 424 Source: Microsoft VBScript runtime error Description: Object required 

但是当我运行使用VBScript CMD它工作正常

C:\Windows\System32 > cscript //nologo D:\Excel.vbs D:\test.xls 

我有完整的管理访问,所以为什么我得到这个错误?

+2

*您*拥有完整的管理员权限...但是ColdFusion运行的帐户是否具有这些权限? – 2014-08-29 09:51:51

+0

@AdamCameron是的,他们有。 – Sks 2014-08-29 09:58:27

+1

将完整的命令和参数粘贴在一个批处理文件中,并且''那个。 – 2014-08-29 10:00:11

回答

0

创建一个vbscirpt文件(.vbs)。代码内容会有你想要达到的任务。

下面的例子包含vbscript文件,刷新excel和执行vbscript的cfm。

示例VBScript文件代码: -

Set fso = CreateObject("Scripting.FileSystemObject") 
Set xl = CreateObject("Excel.Application") 
xl.Visible = True 

For Each f In fso.GetFolder("C:\inetpub\WebSites\Upload\").Files 
    If LCase(fso.GetExtensionName(f.Name)) = "xlsx" Then 
    Set wb = xl.Workbooks.Open(f.Path) 
    wb.RefreshAll 
    wb.Save 
    wb.Close 
    End If 
Next 

xl.Quit 

CFM示例文件代码: -

<cfexecute name = "C:\Windows\System32\cscript.exe" arguments = "C:\inetpub\WebSites\CSAT\test.vbs"> 
</cfexecute> 
+1

好的,但我已经解决了我目前的问题。将很快添加评论 – Sks 2014-08-29 12:49:30

7

这是due to bug in the Windows 2008 server。 对于办公自动化(通过脚本和基于非窗口操作访问),我们必须添加里面

C:\Windows\System32\config\systemprofile 
C:\Windows\SysWOW64\config\system32 

我补充一下,发现成功的一个“桌面”文件夹中。

+0

感谢您发布解决方案。只是好奇,你是否必须在两个位置创建一个“桌面”子文件夹?这个线程根据你的o/s发声,比如说'SysWOW64'为64bit,'System32'为32bit。 – Leigh 2014-08-29 20:25:10

+2

是@Leigh桌面文件夹需要在两个目录下创建。 – Sks 2014-08-30 02:49:04