任务计划程序 – 我有一个.cmd文件,我试图通过任务计划程序定期执行。 我已经设置了任务,以便它指向cmd文件。 即使没有人login,也要执行任务。我已将与任务关联的凭据设置为本地服务帐户。 当我执行任务时,什么都不会发生。 最后运行结果显示0x1,这意味着它没有正确执行。 当我从命令提示符运行该文件时,它执行得很好。 任何帮助,将不胜感激。 我会张贴代码,但它有敏感的信息,我不允许外面的代码。 谢谢
从你的问题来看,这个任务是以“本地系统”还是以服务帐户的本地用户身份运行还不清楚。
如果,
那么您需要修改cmd.exe的安全设置 – 默认情况下,NTFS ACL只允许pipe理员和交互式login用户执行它。 ( 参考 )
编辑 :哦,这只适用于Windows 2003.我在这个答案三个毫无根据的假设。让我们知道什么操作系统和用户权限的水平,我们应该能够缩小它。
创build一个用户帐户,设置权限以便该用户可以以该用户身份运行(例如文件夹访问权限),以该用户(runas / user:domain \ user cmd)运行命令提示符,然后从该位置尝试该任务。
当它工作时,将计划任务设置为以该用户身份运行。
编辑 :这将无法正常工作,直到你考虑到沙恩·马登的有关c:\ windows \ system32 \ cmd.exe权限的答复。
我有一个类似的问题,因为我的.cmd文件是在C:\(根)。 移到其他地方后,它从任务计划程序运行良好。 在某些企业环境中,在C:\根目录下有一些限制。
对于XP,2000和Server 2003来看看这篇MS文章“作为系统帐户安排任务的唯一方法是使用AT.EXE来安排任务”
http://support.microsoft.com/kb/223375
对于Vista和2008这可能有助于https://stackoverflow.com/questions/77528/how-do-you-run-cmd-exe-under-the-local-system-account
尝试在脚本中pause ,然后您可以阅读该问题。
在我的情况下,我得到了access denied错误,因为脚本开始在\windows\system32运行。 所以,改成正确的文件夹( cd )后,它的工作。