从任务计划程序启动服务最小化

Ala*_*inD 7 windows scheduled-tasks command-line

按照这个超级用户问题创建计划任务后,我可以在没有 UAC 提示的情况下成功启动服务。选择的选项是:

  • Start a program
  • Program\script = C:\Windows\System32\net.exe
  • Add arguments (optional) = start "SERVICE-NAME"

然后在批处理文件中我调用schtasks /run /tn TASK-NAME. 对此进行测试后,我创建了批处理文件的快捷方式并将Run选项设置为Minimised.

这一切都有效,只是当实际服务启动时,会弹出一个带有单行的最大化命令提示符窗口The SERVICE-NAME service is starting。然后在几秒钟后消失。

如何告诉任务计划程序在没有弹出窗口的情况下静默(或最小化)启动目标程序?如果弹出命令提示符被最小化,那就没问题了。

Alb*_*nez 4

问题是,当您将快捷方式配置为最小化运行时,您只会最小化启动计划任务的程序,而不是任务执行的程序。您的 Rube Goldberg 机器启动序列中需要另一块,请进行以下更改:

  • Program\script=C:\Windows\System32\cmd.exe
  • Add arguments (optional)=/c start /min net start "SERVICE-NAME"

第一个“start”是cmd.exe start命令,我们将其用于两个功能:

  1. 启动net.exe最小化。
  2. taskeng.exe一旦启动就完成,而net.exe不是等待它完成。

请注意,此解决方案并不完美,因为在启动taskeng.exe之前会短暂闪烁net.exe,但通常不到一秒钟。

  • 您需要在第一个 START 之后添加 `""`,否则它将错误地将任何带引号的参数解析为窗口标题,并为下一个参数给出错误“系统找不到文件”。使用 `/c start "" /min net start "SERVICE-NAME"`。 (3认同)