我有一个必须在64位Windows 7计算机上以32位运行的vbscript文件,以便它可以连接到32位Access数据库。从运行框中我可以输入:
C:\Windows\SysWow64\WSCRIPT.EXE P:\Applicants\Applicants.wsf
它运行得很好。当我尝试将其作为计划任务运行时,它会在一秒钟内运行(它不应该那么快)并声称它已成功完成。这是我目前正在运行它的“动作”:
Start a Program
C:\Windows\SysWow64\WSCRIPT.EXE
Arguments: //Nologo //B P:\Applicants\Applicants.wsf >> P:\Applicants\logfile.txt
我也试过在CScript而不是WScript下运行它,结果完全一样。
在我添加“// Nologo // B”(我在这里找到的提示)之前,它会开始运行并且永不停止。
可选的“开始时间”框为空。如果我完全放入任何值(尝试P:\ Applicants),则任务无法以“错误值:2147942667”开头。通过搜索此错误代码提供的解决方案没有工作,因此我将此框留空。
日志文件永远不会被创建,脚本执行的任何工作都没有完成。
该任务在我的网络帐户下运行,并且应该可以访问所有需要的驱动器和资源。
连连呢?如果没有日志文件,我甚至不知道从哪里开始排除这个问题。
编辑:新信息:如果我将其设置为仅在我登录时运行它可以正常工作。仅当设置为运行时,即使用户注销它也不起作用,即使我在运行时登录也是如此。
编辑2:“即使用户已注销也会运行”的安全上下文指出“”...选择标记为“运行是否用户已登录”的单选按钮。如果选中此单选按钮,则任务将不会以交互方式运行。要以交互方式运行任务,请选择“仅在用户登录时单独运行”单选按钮。“
所以我猜它认为我的脚本在某种程度上是互动的,但事实并非如此。没有任何类型的提示或对话框或msgBox调用,所以我不确定为什么这会是一个问题。
答案 0 :(得分:3)
知道了!问题是我在'action'调用和脚本本身中引用了P:\的映射驱动器。当我用完整的网络路径\ server \ share替换所有对P驱动器的调用时,一切正常。当然,如果我没有登录,则映射驱动器不可用,这非常有意义:p
答案 1 :(得分:0)
您有两种选择。
1.使用要运行的命令创建批处理文件,然后计划运行批处理文件而不是VBScript文件。
2.直接运行脚本文件,而不是使用WScript
或CScript
。