
我使用了任務規劃程式並建立了一個新任務,新增了一個觸發器,將其設為 event: on Idle 並建立了該任務。在條件標籤中,指定任務等待 1 分鐘才能變為空閒狀態(而不是僅等待 10 分鐘進行測試)。
但我等待了10多分鐘,任務從未在PC1上觸發,但在另一台PC2上觸發。另外,如果我在任務規劃程式中按“運行”,任務會在 PC2 中正常運行,只是閒置 1 分鐘時不會自動觸發。我在網上檢查過,發現它PowerCfg -requests
會顯示是什麼阻止了 PC 處於空閒狀態,當我在 PC2 上運行它時,沒有任何返回,但當我在 PC1 上運行它時,我得到了這個“舊版內核呼叫程式“ 司機。
所以我使用了Powercfg -requestsoverride
,但是當我運行時powercfg -requestsoverride Driver "Legacy Kernel Caller" System
,它成功了,我在Powercfg -requestsoverride
列表中找到了它,但powercfg -requests
它仍然顯示[DRIVER] Legacy Kernel Caller
在下面SYSTEM:
,並且任務從未觸發,請問有什麼建議嗎?
以下是我的計劃任務在任務計劃程序中的外觀:
這也是我的任務的 xml:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2019-11-20T15:43:06.6081219</Date>
<Author>MyPC\MyUser</Author>
<URI>\MyAppIdleTask</URI>
</RegistrationInfo>
<Triggers>
<IdleTrigger>
<Enabled>true</Enabled>
</IdleTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-21-1004336348-1177238915-682003330-385281</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<Duration>PT1M</Duration>
<WaitTimeout>PT0S</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>true</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\MyWinFormApp\MyWinForm.exe</Command>
</Exec>
</Actions>
</Task>
答案1
安排任務時需要注意幾件事。
我發現的主要問題之一是時機。
例如,假設現在是 0018h,您安排一個任務在每天 0000h 每 5 分鐘運行一次。您進行所有設置,輸入所有條件,測試啟動任務,一切都很好,但即使滿足條件,任務也不會啟動。發生這種情況是因為超出了時間表。它只會在下一個 0000h 開始。因此,如果它是 0018h,並且您確實希望看到任務正常運行,請將其放在稍後的時間,例如 0024h,並確保在配置它時不會超過設定的時間。
然後,您可以確保其他條件良好,例如與電源狀態、網路可用性、成功狀態相關的條件。
另一個非常重要的方面:確保用於運行它的憑證具有足夠的權限來實際運行它。該部分更容易檢查,因為您可以手動測試它。