任务计划程序 - 我有一个 .cmd 文件,我正尝试通过任务计划程序定期执行它。我已将任务设置为指向 cmd 文件。我希望即使没有人登录,任务也能执行。我已将与任务关联的凭据设置为本地服务帐户。当我执行任务时,什么也没发生。上次运行结果显示 0x1,这意味着它没有正确执行。当我从命令提示符运行文件时,它执行得很好。任何帮助都将不胜感激。我会发布代码,但里面有敏感信息,我不允许将代码泄露出去。谢谢
答案1
从您的问题无法清楚了解该任务是以“本地系统”身份运行还是以本地用户(即服务帐户)身份运行。
如果,
- 用户是本地服务帐户,而不是系统帐户,并且
- 用户不在管理员组中,
那么你需要修改安全设置cmd.exe
- 默认情况下,NTFS ACL 仅允许管理员和以交互方式登录的用户执行它。(参考)
编辑:哦,这仅适用于 Windows 2003。在这个答案中我有三个毫无根据的假设......让我们知道什么操作系统和用户权限级别,我们应该能够缩小范围。
答案2
创建一个用户帐户,设置权限,以便任务可以以该用户的身份运行(例如文件夹访问权限),以该用户的身份运行命令提示符(runas /user:domain \user cmd),然后从那里尝试该任务。
当它工作时,将计划任务设置为以该用户身份运行。
编辑:除非你考虑到 Shane Madden 关于权限的回复,否则这不会起作用目录:\windows\system32\cmd.exe也一样。
答案3
我遇到了类似的问题,因为我的 .cmd 文件位于 C:\(根目录)。移到其他地方后,它从任务计划程序运行良好。在某些公司环境中,C:\ 根目录级别存在限制。
答案4
在您的脚本中尝试一下pause
。然后您将能够读懂这个问题。
就我而言,我遇到了一个access denied
错误,因为脚本开始在 中运行\windows\system32
。因此,在更改为正确的文件夹 ( cd
) 后,它就可以正常工作了。