执行计划任务操作的服务

Posted

技术标签:

【中文标题】执行计划任务操作的服务【英文标题】:service to perform scheduled task operation 【发布时间】:2020-06-01 18:17:31 【问题描述】:

是否可以使用另一个批处理文件作为参数从 Windows 批处理文件创建 Windows 计划任务:

For eg : schtasks.exe /create /tn "taskName" /tr "%Home%\bin\bootstrap.cmd" /sc DAILY /st 00:01:00 /ri 1 /du 0023:59 %schTaskAccountArgs%"

背景 上面脚本中的批处理文件'bootstrap.cmd' 调用了其他批处理文件,最终调用了一个exe。它会在 Microsoft 控制台中创建一个触发相同 exe 的计划任务,但在我的情况下,由于 GPO 策略,无法创建计划任务 (策略无法存储运行计划作业的用户)。作为一种解决方法,我想在同一个批处理文件中创建一个服务,方法是将上面的内容替换为:

sc create "service for taskName" start= demand displayname= "service for taskName" binpath= "%Home%\bin\bootstrap.cmd"

为这个场景创建服务是否可行?

【问题讨论】:

【参考方案1】:

Windows 似乎没有将 .bat(和 .cmd)文件作为服务运行。

这里有一些替代方案:

    创建一个计划任务,该任务在 启动。 将 .cmd 转换为可执行文件。见How can a .bat file be 'converted' to .exe without third party tools? 使用外部工具(如 NSSM 精选 here)

【讨论】:

谢谢,我无法创建计划任务,因为服务器安全策略不允许我这样做(无法保存密码)并且该工作需要由不是已登录。因此,我正在创建一个执行该作业的服务,并且可以将登录更改为该用户。批处理脚本的转换以创建服务是目前的问题。

以上是关于执行计划任务操作的服务的主要内容,如果未能解决你的问题,请参考以下文章

计划任务

Windows权限维持——计划任务

计划任务

Linux-计划任务

Linux系统任务计划和系统服务管理

linux中计划任务管理