Windows 任务计划程序 - 使任务作为应用程序而不是后台进程运行

Windows 任务计划程序 - 使任务作为应用程序而不是后台进程运行

我有一个每天全天运行的 Windows脚本。它每天早上午夜过后 5 分钟powershell启动,作为应用程序运行(即在我的桌面上的控制台中),然后在每天晚上午夜前 5 分钟左右自动关闭。task managerpowershell

作为应用程序运行有许多优点。我可以非常轻松地看到它正在运行,我可以很容易地看到它正在工作(屏幕上不断滚动显示消息),我可以ctrl+c随时按 强制它有序关闭。

启动此操作的 Windows 任务配置为run only when user is logged on99% 的时间都正常,因为我的帐户始终处于登录状态。此选项意味着该任务始终作为我的桌面上的应用程序运行。

有时电源故障或更新会导致重新启动(注销我的帐户)。我希望我的 powershell 任务重新启动,所以我在“系统启动时”为任务添加了第二个触发器。实验表明,这将仅有的如果将选项run only when user is logged on更改为 ,则可正常工作run whether user is logged on or not。但是此选项有一个问题,powershell 进程现在在任务管理器中显示为background process,而不是app。所以现在我没有在屏幕上的窗口中运行脚本,我无法监控它的进度,也无法干净地关闭它(task manager后面跟着End Task是我唯一的选择)

我希望任务管理器始终将我的脚本作为应用程序而不是后台进程运行,所以我想

  1. 配置任务管理器,以便重新启动时我的帐户登录并且脚本作为应用程序启动,或者
  2. 配置任务管理器,以便如果我的帐户已登录,则脚本将作为应用程序启动,如果我的帐户未登录(即断电后),则(且只有这样)它才会作为后台进程启动。

或者还有其他解决方案?基本上,我需要脚本一直运行,并且我需要能够在桌面上的窗口中看到它正在运行,这样我才能看到它在做什么。

答案1

好的,我想我自己已经找到了答案。

我没有使用一个具有两个不同触发器的任务,而是创建了同一个任务的两个不同版本,每个版本都有不同的触发器。

  • 一个设置为每天早上午夜过后 5 分钟运行,并设置为run only when user is logged on。这可以处理 99% 的正常操作 - 该任务作为我桌面窗口中的前台应用程序运行。
  • 另一个设置为run at system startup,这个设置为run whether user is logged on or not这解决了在计划外停机后需要启动作业的非常奇怪的情况。 好的,它作为后台进程运行,这很烦人,但至少它在运行!

相关内容