我的脚本不会在任务调度程序下运行。为什么?

时间:2009-03-20 04:45:58

标签: vbscript windows-server-2008 scheduled-tasks

我有一个vbscript脚本,当我自己运行它时运行正常。

出于某种原因,当我在任务调度程序下以管理用户身份运行它时,它会运行,但甚至不会写入我的日志文件。它不应该是权限,因为 用户我在adminstrator下运行它。

它是一个在Win2008 64位机器上调用32位dll的脚本。

C:\ windows \ SysWOW64 \ cscript.exe Bob.vbs

我还将本地目录设置为我运行它的位置。

具有讽刺意味的是,任务调度程序说“成功完成”运行任务。

此外,任务调度程序中还有其他脚本正常运行,只是这个脚本。

有没有人列出我可以查看的内容?

13 个答案:

答案 0 :(得分:7)

我在Windows 2008 Server和Windows 7上遇到过DOS批处理文件和VB脚本的问题。在每种情况下,一旦我为计划任务操作设置了“start in”文件夹,一切正常。

答案 1 :(得分:6)

我在SVN服务器上运行计划任务时遇到类似问题。

我的脚本写的是我认为当前的工作目录(我为任务指定的目录为“Start in”文件夹)。如果我登录到服务器并运行脚本,它工作正常。当作为预定作业运行时,它不会。

就我而言,调度程序看起来像是将工作目录重新分配为TEMP环境变量中为用于运行作业的用户帐户指定的目录,而不是我为任务指定的目录(“开始”文件夹)。

检查帐户的TEMP文件夹,看看您的文件是否存在。

答案 2 :(得分:5)

我遇到了这个问题(早上好)并找到了这个解决方案here

在Windows任务计划程序中,我必须单击“更改用户或组”按钮并添加“管理员”组。

希望它有所帮助。

答案 3 :(得分:4)

如果您正在运行Win2008 64位计算机:这(最终)在同一台服务器上为我工作。任务调度程序运行批处理文件(例如runvbs.bat)以使用32位版本的命令行解释器调用cscript,如下所示:

@echo off
%windir%\syswow64\cmd.exe /C "c:\windows\system32\cscript.exe //B //nologo import_some_data.vbs"

请注意双引号

我使用Administrators组获取权限,使用最高权限运行。

配置:Windows®7,Windows Server™2008 R2

在编辑操作对话框中,我有:

行动:启动程序

程序/脚本:runvbs.bat

开始于:c:\ inetpub \ wwwroot \ asp \ importstuff \

答案 4 :(得分:1)

解决了同样的问题。 连接到数据库时脚本将失败,然后在修复创建Xls文件后失败。 我创建了一个bat文件并将以下内容添加到其中。这个bat文件将调用我的vb脚本并以32位模式运行它。

%windir%\SysWoW64\cmd.exe /C "c:\windows\system32\cscript.exe //B //nologo C:\ScheduledJobs\PrimeReconDev\myVBScript.vbs"

我设置任务计划以执行包含上述内容的bat文件,并将执行用户分配给Administrators。通过在常规选项卡上单击“更改用户或组”选项来执行此操作。一旦完成,我就能成功执行没有问题。 我最初是以我身份执行的,而且我在管理员组中,但它仍然失败了。执行内置管理员的做法

答案 5 :(得分:0)

我在过去遇到过类似的问题,在调度vbs脚本时代码没有执行 - 这可能会有问题!也很好奇,看看是否有人可以解决这个问题。 (顺便说一句,我们通过将代码重写为C#控制台应用程序来解决它)

答案 6 :(得分:0)

当我遇到这个问题时,通常是因为我的任务上运行的程序错误输出,即使已完成任务的返回值没有报告任何问题。

你说它运行但没有写入你的日志 - 它是否可能在写入你的日志之前崩溃?

如果您还没有,请在脚本中添加错误处理并尝试记录任何错误,或者至少尝试跟踪脚本的执行情况。

答案 7 :(得分:0)

我遇到了同样的问题,直到我将蝙蝠作业的路径添加到操作标签上的开始中。

右键单击任务→属性→操作→编辑开始(可选)

只需填写蝙蝠作业的路径即可。

答案 8 :(得分:0)

对于Windows 2008,您可能需要确保该任务以管理权限运行。

常规选项卡 - (检查)以最高权限运行

答案 9 :(得分:0)

我遇到了同样的问题。

我使用相对路径(“logs \ log”)而不是之前使用的绝对路径(“U:\ workingDirectory \ logs \ log”)来修复它。

通常,当您通过任务计划程序执行脚本时,您需要使用相对路径。

答案 10 :(得分:0)

我有同样的问题。 在Task中使用下一个字符串 - >运行字段 CMD / C"我的VBScript的完整路径" 喜欢 CMD / C c:\ Test \ MyScript.vbs

答案 11 :(得分:0)

到处看看这一点,但现在我得分享了。

如果脚本在服务器2003上运行正常,则尝试移动到服务器2012并且脚本的一部分将无法运行。

必须创建新任务并在常规选项卡上选择“Windows Server 2003,Windows XP或Windows 2000的配置。如果您使用基本任务,则此选项不允许使用2003,您必须使用新任务。” p>

答案 12 :(得分:0)

替代解决方案:

仅在用户登录时运行

在任务管理器中进行选择。

<小时/> 这就是为我做的修复(在3台独立计算机上 - Win7 Pro,Win12服务器)

我希望它可以帮助别人。