代码之家  ›  专栏  ›  技术社区  ›  GordyII

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

  •  12
  • GordyII  · 技术社区  · 17 年前

    我有一个vbscript脚本,当我自己运行它时,它运行得很好。

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

    它是一个在Win2008 64位计算机上调用32位DLL的脚本。

    C:\windows\sysw64\cscript.exe bob.vbs

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

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

    另外,任务调度器中还有其他脚本运行良好,它只是这个脚本。

    有人有我能查到的东西的清单吗?

    13 回复  |  直到 17 年前
        1
  •  6
  •   Patrick Cuff    17 年前

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

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

    在我的示例中,调度程序似乎将工作目录重新分配为 TEMP 用于运行作业的用户帐户的环境变量,而不是为任务指定的目录(“start in”文件夹)。

    检查 临时雇员 帐户的文件夹,查看文件是否存在。

        2
  •  7
  •   Jared nZeus    14 年前

    我在Windows2008服务器和Windows7上遇到过DOS批处理文件和VB脚本的问题。在每种情况下,一旦我为计划的任务操作设置了“开始于”文件夹,一切都会正常工作。

        3
  •  4
  •   Community Mohan Dere    9 年前

    我对这个(一个上午)有真正的问题,找到了解决办法 here :

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

    希望它能帮助别人。

        4
  •  4
  •   Arbor    10 年前

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

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

    注意双引号 .

    我使用管理员组获取权限并以最高权限运行。

    配置对象:Windows®7、Windows Server™2008 R2

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

    操作:启动程序

    程序/脚本:runvbs.bat

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

        5
  •  1
  •   Richard Erickson Snow R    10 年前

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

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

    我设置了任务调度来执行包含上述内容的BAT文件,并将执行用户分配给管理员。通过在“常规”选项卡上选择“更改用户或组”选项来完成此操作。一旦完成,我就可以成功地执行,没有问题。 我最初是以自己的身份执行的,现在在管理员组中,但它仍然失败。执行内置的管理员就做到了这一点

        6
  •  0
  •   Chris    17 年前

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

        7
  •  0
  •   Jay Riggs    17 年前

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

    你说它运行但不写入你的日志——在它写入你的日志之前它可能崩溃吗?

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

        8
  •  0
  •   Marko cyn    14 年前

    在添加BAT作业存储到 开始于 在“操作”选项卡上。

    右键单击“任务”“属性”“操作”“编辑开始位置”(可选)

    只需填写球棒工作的路径。

        9
  •  0
  •   guest    13 年前

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

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

        10
  •  0
  •   ignis    13 年前

    我也有同样的问题。

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

    另外,当您通过任务调度程序执行脚本时,需要使用相对路径。

        11
  •  0
  •   kjsm    12 年前

    我也有同样的问题。 已在任务中使用下一个字符串->运行域 cmd/c“我的vbscript的完整路径” 喜欢 命令/c c:\test\myscript.vbs

        12
  •  0
  •   Nate    11 年前

    我四处寻找,想弄清楚,但现在我得到了,我会分享。

    在服务器2003上运行良好的脚本,试图移动到服务器2012,脚本的一部分将无法运行。

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

        13
  •  0
  •   Elias    9 年前

    替代方案:

    艾斯 仅当用户登录时运行

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


    这就是我所做的修复(在3台独立的计算机上-win7 pro、win12 server)

    我希望它能帮助别人。