2013-10-11 191 views
17

我有下面的代码一个批处理文件来停止和启动SQL报告服务:Windows任务计划程序无法启动批处理文件任务

net stop "SQL Server Reporting Services (MSSQLSERVER)" 

timeout /t 10 

net start "SQL Server Reporting Services (MSSQLSERVER)" 

我已经建立了计划任​​务每​​天运行,它当前以具有最高权限设置的SYSTEM运行。我已经在动作中设置了文件夹选项的开始,并且一切似乎都已正确设置。但是,当我运行任务似乎没有发生,它说任务已经运行,但我不能看到该服务已重新启动,因为它的意图。

有人能指引我失去什么吗?谢谢

+1

如果您使用您的用户凭证而不是系统,它能起作用吗?这将是一个很好的测试,看看它是否可以作为计划任务运行。也许把'net start'行删除,并确认服务已经停止 - 看看权限是否是一个问题。 – foxidrive

+0

我已经编辑它,所以它只有停止线,我已经尝试使用我的凭据,而另一个用户的,但它并没有停止服务。我可以自己运行批处理文件,而不是任务,并且它工作正常 – jimminybob

+0

也许它没有正确启动,或者仍然存在权限问题 - 或者批处理文件中还有更多我们还没有看到的权限问题。 – foxidrive

回答

49

请确保你设置了'开始''程序/脚本'选项正确。如果您的文件地址是:C:\ Temp \ foo.bat,请将'start in'选项设置为'C:\ Temp'并将'Program/script'选项设置为'foo.bat'。

要设置“开始在”选项:右键点击任务调度> Properties > Actions > Edit.

任务如果仅此不工作,然后尝试.bat文件移动到与基本权限的目录(可能是共享目录例如)。

我有一个问题,我的.bat文件位于一个具有一定限制权限的文件夹中,因此只有我的用户帐户可以访问它。尽管我已经设置了任务调度程序来使用我的凭据,但它仍然失败。将.bat文件移动到另一个目录对问题进行排序。

+1

这有效。只需将参数'''的参数设置为bat文件所在的目录即可。 –

2

设置'程序/脚本' - >file.bat 设置'开始在'路径(file.bat)其余

+1

这适用于Windows Web Server 2008 R2。 –

5

我有同样的问题。我相信这是一个特权问题。如果您选择“仅在用户登录时运行”,则不会发生。

你已经希望知道现在,但我想在这里注册它,为下一个浪费了这个小时的人。

7

浪费了很多时间在这个愚蠢的问题!

添加一个cd命令到您的批处理文件驻留在您的批处理文件的第一行,看看它是否解决了问题。

cd D:\wherever\yourBatch\fileIs 

提示:请使用绝对路径,相对路径理想情况下应该不会有问题,但调度有困难的时候,理解它们。

+2

我的情况下,相对路径被杀死。谢谢你的提示。 – NLV

+1

没问题,Windows现在应该已经解决了这个问题(希望)! – MoMo

3

有同样的问题,请确保您选中“只有当用户登录时运行”至少这是什么使我的bat文件再次活着。

2

的解决方案是,你应该取消(取消)选项“如果用户登录时只运行”。

这种变化之后,它开始在我的机器上工作。

1

一个解决方案是你可以运行你的'.bat'文件与'。vbs'文件,您可以在窗口调度程序中运行此vbs文件。

Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("cron_jobs.bat"), 0, True 

你可以这样做,我希望它能解决你的问题。

3

这是一个很老的线程,但问题仍然是相同的 -

我试过许多东西,他们没有工作 -

  1. 添加了启动路径(不带引号)
  2. 删除程序/脚本 字段等中的批处理文件的完整路径
  3. 向程序添加C:\Windows\system32\cmd.exe并将/c myscript.bat添加到参数字段。

这是为我工作 -

程序/脚本场 - 在cmd

添加参数 -/C myscript.bat

开始:路径myscript.bat

+1

你好Simitraa和欢迎来到这个网站。我试图编辑你的答案,使它更漂亮,更简洁,随意再次编辑。 – MackM

+0

这是在Windows 10上为我工作的那个 –

1

请尝试下面的代码:

Batchfile.bat:

cd c:\batchfilepath 
net stop "SQL Server Reporting Services (MSSQLSERVER)" 
timeout /t 10 
net start "SQL Server Reporting Services (MSSQLSERVER)" 
0

对我来说这是触发问题。默认情况下,它应该在触发器选项卡中输入On a Schedule。我选择了At log on,然后我正在等待运行任务。正如登录时所说的名称,意味着您必须注销并登录。

试着把它放在日程安排上,每分钟开火一次。

enter image description here

1

对于我来说,这个问题是造成.bat包括一个cd到网络驱动器。这失败了,然后稍后调用该网络驱动器中的程序什么都不做。

我想通了这一点通过在添加参数的编辑动作窗口领域的任务添加> log.txt

+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/18254706) –

相关问题