执行计划任务操作的服务
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)
【讨论】:
谢谢,我无法创建计划任务,因为服务器安全策略不允许我这样做(无法保存密码)并且该工作需要由不是已登录。因此,我正在创建一个执行该作业的服务,并且可以将登录更改为该用户。批处理脚本的转换以创建服务是目前的问题。以上是关于执行计划任务操作的服务的主要内容,如果未能解决你的问题,请参考以下文章