English 中文(简体)
我的脚本无法在任务计划程序下运行。为什么?
原标题:
  • 时间:2009-03-20 04:45:58
  •  标签:

我有一個VBScript腳本,在我自己運行它時運行良好。

For some reason, when I run it under the task scheduler as an administration user, it runs, but doesn t even write to my log file. It shouldn t be permissions, as the user I run it under is adminstrator.

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

C:windowsSysWOW64 cscript.exe Bob.vbs (Note: The translation is already in simplified Chinese characters.)

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

具有讽刺意味的是,任务计划程序表示“成功完成”运行任务。

此外,任务计划程序中还有其他脚本运行正常,只有这个脚本有问题。

有人有我可以检查的事项清单吗?

最佳回答

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

我的脚本以为它正在写入当前工作目录(我指定为任务的“起始文件夹”的目录)。如果我登录服务器并运行脚本,它可以正常运行。但是当作为计划任务运行时,它却不能正常工作。

在我的情况中,看起来调度程序重新分配了工作目录,使其成为用于运行作业的用户账户中指定的TEMP环境变量所指定的目录,而不是我为任务指定的目录(即“开始于”文件夹)。

检查账户的 TEMP 文件夹,看看您的文件是否在那里。

问题回答

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

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

@echo off
%windir%syswow64cmd.exe /C "c:windowssystem32cscript.exe //B //nologo import_some_data.vbs"

请注意双引号。

我使用管理员组的权限和最高特权运行。

配置适用于:Windows® 7,Windows Server™2008 R2

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

动作:启动一个程序

程序/脚本:runvbs.bat

从: c:inetpubwwwrootaspimportstuff 开始

我在这方面遇到了真正的问题(早上遇到的),并在这里找到了解决方案: here:

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

希望它能帮助某人。

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

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

Solved this same issue. Script would fail when connecting to database then after fixing that it failed when creating Xls file. I created a bat file and added the below contents to it. this bat file will call my vb script and run it in 32 bit mode.

%windir%SysWoW64cmd.exe /C "c:windowssystem32cscript.exe //B //nologo C:ScheduledJobsPrimeReconDevmyVBScript.vbs"

I set up the task schedule to execute my the bat file with the above contents and sect the executing user to Administrators. Do this by sing the "change user or group" option on the general tab. once done I was able to execute successfully no issues. i was initially executing as me and I am in the administrators group but it was still failing. Executing as built in administrators did the trick

I ve had similar problems in the past with code not executing when scheduling vbs scripts - it can be problematic! Also curious to see if anyone can solve this. (by the way, we solved it by rewriting the code as a C# console application)

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

你说它在运行,但没有写入日志 -- 有可能是在写入日志前崩溃了吗?

如果您还没有这样做,请向脚本添加错误处理并尝试记录任何错误,或者至少尝试跟踪脚本进行到哪个阶段。

我遇到过相同的问题,直到我在操作选项卡的启动位置中添加了批处理作业的存储路径。

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

只需填写您的批处理作业的路径。

我有相同的问题。

我改用相对路径(“logslog”)来修复它,而不是之前使用的绝对路径(“U:workingDirectorylogslog”)。

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

I ve had same issue. Used next string in Task -> Run field CMD /C "full path to my VBScript" like CMD /C c:TestMyScript.vbs

四处搜索了解了这个问题,现在我会分享。

在 Server 2003 上顺利运行的脚本,尝试迁移到 Server 2012,但其中一部分脚本无法运行。

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

替代方案:

只有用户已登录才运行

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


This is what fixed did it for me (on 3 Separate Computers - Win7 Pro, Win12 Server)

我希望它能帮助其他人。





相关问题
热门标签