2

我有一个 vbscript 文件,它必须在 64 位 Windows 7 机器上以 32 位运行,以便它可以连接到 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 调用,所以我不确定为什么会出现问题。

4

2 回答 2

4

知道了!问题是我在“操作”调用和脚本本身中都使用 P:\ 引用了映射驱动器。当我用完整的网络路径 \server\share 替换对 P 驱动器的所有调用时,一切正常。如果我没有登录,当然映射驱动器不可用,这很有意义:p

于 2013-04-18T15:02:20.593 回答
0

你有两个选择。

1.使用要运行的命令创建一个批处理文件,然后安排批处理文件而不是VBScript文件运行。

2.直接运行脚本文件,而不是使用WScriptor CScript

资料来源:http ://social.technet.microsoft.com/Forums/en-US/windowsserver2008r2general/thread/464a3bb3-3bcd-47a0-ab03-f0b8910f2ed1/

于 2013-04-17T20:45:06.913 回答