错误信息:Windows任务因登录失败而未能执行

错误信息:Windows任务因登录失败而未能执行

作者:BlogUpdater |  时间:2018-09-16 |  浏览:3859 |  评论已关闭 条评论

Windows的任务管理主要用于无人值守情景下的周期性任务执行,我们经常会使用它进行诸如数据备份,版本更新检查,自动构建之类的任务,十分方便。
在一次检查任务执行情况中,我发现有一个定义好的任务有时候会执行,有时候没有执行。这就奇怪了!

查找原因
对比了一下另一个正常执行的任务的属性,发现有一条属性设置不一样:

在任务的安全选项中,如果不勾选不存储密码,则任务可以正常执行,如果勾选了,则如果用户没有登录系统,则任务不会执行。

进一步确认原因
打开事件管理器中的安全事件,发现在任务执行的时间有一条登录失败的日志。

结论
如果任务选择不存储密码,则当用户注销了系统,任务因为没有保存登录密码,则会因为登录失败而导致任务无法执行。
如果我们不勾选存储密码,则当保存任务设置的时候,系统会提示输入用户密码,输入的密码会被系统保存,所以下次不管用户是否登录了系统,都会登录成功并执行任务。

更多参考(MSDN)
When the Run whether user is logged on or not option if selected, you may be prompted to supply the credentials of the account when saving the task, regardless of whether you select the checkbox labeled Do not store password or not. If the account is not logged on when the corresponding task is triggered, the service will use the saved credentials to run as the specified account and will have unconstrained use of the resulting token.
If you select the checkbox labeled Do not store password , Task Scheduler will not store the credentials supplied on the local computer, but will discard them after properly authenticating the user. When required to run the task, the Task Scheduler service will use the “Service-for-User” (S4U) extensions to the Kerberos authentication protocol to retrieve the user’s token.

标签:

评论已关闭。