自从 28 日上次 DST 更改以来,我的 Windows 任务计划程序出现了问题(我在欧洲)。
我有几台 Windows 10 PC 用作测试台,我们正在测试的程序有一个数据库和一个允许用户安排数据库备份的功能。该程序安排的所有任务自周日以来都已停止,其他计划任务运行良好。
使用类创建计划任务TaskService
如下
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.XmlText = xmlString;
ts.RootFolder.RegisterTaskDefinition(name, td);
}
用于任务定义的 XML 如下
<?xml version=\"1.0\" encoding=\"UTF-16\"?>
<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">
<RegistrationInfo>
<Date>[RegistrationDate]</Date>" +
<Description>[ScheduledTaskName]</Description>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>[StartBoundary]</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<[DayOfWeek] />
<[DayOfWeek] />
....
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions>
<Exec>
<Command>[Command]</Command>
<Arguments>[Arguments]</Arguments>
</Exec>
</Actions>
</Task>
我可以完全控制电脑,因此我可以确认它们已正确连接到 AC 并且用户已登录。
昨天晚上,我使用该程序在一台 PC 上重新创建了计划任务。执行此操作后,以前的任务将被删除,并创建一组新任务。执行此操作后,此特定 PC 上的所有计划任务都开始定期运行。
我无法想出为什么我的任务会随着夏令时时间变化而停止。我认为问题可能出在配置的某个地方,因为所有其他计划任务都运行良好。
是不是配置过程中我没考虑到什么?或者在安排操作时我应该执行哪些其他操作?