【发布时间】:2013-07-17 10:55:58
【问题描述】:
我正在尝试从服务器 (IIS-6) 上的 ASP 文件中运行 VBS 文件 我已经更改了安全性,因此必须登录服务器才能访问 ASP 页面(这样 ASP 才能获得存储 VBS 文件的位置的权限)。
所以,我有一个如下所示的 default.asp 页面:
<%response.write "hello" 'just for debugging purposes.
set objshell = server.createobject("wscript.shell")
objShell.Run "c:\test\test.vbs",0,true '0=no interaction, true=wait for command to finish%>
VBS 文件只是一个空文件(一些备注)所以应该发生的事情是 wscript 应该运行,什么都不做,关闭 wscript.exe 并返回它已完成。
在上面的例子中发生的事情是在服务器上 wscript.exe 启动,网页等待命令完成。但是 wscript.exe 永远不会自行退出/停止。如果我结束 wscript.exe 进程,则页面将继续加载。但是 VBS 不会被执行。
所以我尝试了一些修改,我在 VBS 文件中添加了代码以写入一个带有执行时间的文件,所以我知道它不会运行 VBS 文件。
我还尝试了 objshell.run/exec 命令的其他变体:
objsshell.exec("cscript.exe /B /H:Cscript c:\test\test.vbs") ' nothing happens at all.
objsshell.exec("wscript.exe /B /H:Cscript c:\test\test.vbs") ' wscript and "hangs"
有人对我如何让 VBS 命令运行以及如何退出 Wscript.exe 进程有任何提示吗?
【问题讨论】:
-
显然您的 ASP 代码工作正常,问题在于您在
test.vbs中的 VBScript 代码,因此您需要显示/检查该代码。 -
好吧,如上所述,我只有一个空文件。哪个什么都不做......所以,它应该只运行文件,退出并返回 0(成功)......但它没有......所以文件中确实没有任何可以检查或显示的内容。
-
权限。首先,向 IIS 用户授予文件及其父文件夹的权限。
标签: asp-classic vbscript