我可以安排 Windows 任务在交互式桌面会话中运行吗?

我可以安排 Windows 任务在交互式桌面会话中运行吗?

我正在尝试创建一个计划任务,该任务将在专用计算机上每天运行一次。该任务将运行一个 exe。该 exe 执行许多操作,包括运行操纵鼠标/键盘等的自动化程序。

这可能吗(在任何基于 Windows 的操作系统上)?

答案1

当然...让计划任务运行的用户保持登录状态,并将任务选项设置为仅在用户登录时运行。

我相信您也可以使用 schtasks:http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx使用 /IT 参数,但我再次认为只有当实际用户登录并运行任务时它才有效。

除此之外,您还可以使用 FireDaemon 让交互式会话将任务作为服务运行。

答案2

是的,这很违反直觉。如果您选择“无论用户是否登录都运行”,它将要求输入您正在使用的帐户的用户的密码。

但是如果您选择“仅在用户登录时运行”,它就不会要求您输入用户的密码。

答案3

有一个原则可以实现这一点(用户)点击更改用户并输入(用户),见下文

计划任务详细信息图片

如果你使用命令行将该任务与 USERS Principal 一起导出到其 RAW XML 输出,你将看到以下内容

将计划任务导出为 XML 的图像

编号:S-1-5-32-545

组 ID 是这里的秘密武器,它决定了任务运行的安全上下文

还有其他主体也使用众所周知的 SID(SYSTEM 和 INTERACTIVE)

为了更好地理解 Windows 中的 SID,我建议阅读https://docs.microsoft.com/en-US/windows/security/identity-protection/access-control/security-identifiers

然后很好地理解除了 GUI 之外,如何使用命令行和自定义 XML 文件与任务计划程序交互

https://www.scriptjunkie.us/2013/01/running-code-from-a-non-elevated-account-at-any-time/

相关内容