powershell
我有一個每天運行的Windows腳本。它在每天早上午夜過後 5 分鐘啟動task manager
,作為應用程式運行(即在powershell
我桌面上的控制台中),然後在每晚午夜前大約 5 分鐘自行關閉。
作為應用程式運行有許多優點。我可以很容易地看到它正在運行,我可以很容易地看到它正在工作(連續的消息在屏幕上滾動),並且我可以ctrl+c
隨時按 強制它有序關閉。
啟動此任務的 Windows 任務已配置為run only when user is logged on
99% 的時間都可以,因為我的帳戶始終處於登入狀態。此選項意味著該任務始終作為應用程式在我的桌面上運行。
有時,電源故障或更新會導致重新啟動(登出我的帳戶)。我希望我的 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
好吧,我想我自己找到了答案。
我沒有使用具有兩個不同觸發器的一項任務,而是創建了同一任務的兩個不同版本,每個版本都有不同的觸發器。
- 其中一趟定於每天早上午夜過後 5 分鐘運行,並設定為
run only when user is logged on
。這可以處理 99% 的正常操作 - 該任務作為前台應用程式在我的桌面上的視窗中運行。 - 另一個設定為
run at system startup
,這個設定為run whether user is logged on or not
這可以處理在計劃外停機後需要啟動作業時出現的非常奇怪的情況。好吧,它作為後台進程運行,這很煩人,但至少它正在運行!