我正在使用powershell的Register-ScheduledTask模块创建一个每月第一天运行的计划任务。
Register-ScheduledTask -Xml (Get-Content -Path PathtoXml.xml | Out-String) -TaskName TaskName"
xml具有以下内容 -
<Triggers>
<CalendarTrigger>
<StartBoundary>2017-12-01T11:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByMonth>
<DaysOfMonth>
<Day>1</Day>
</DaysOfMonth>
<Months>
<January />
<February />
<March />
<April />
<May />
<June />
<July />
<August />
<September />
<October />
<November />
<December />
</Months>
</ScheduleByMonth>
</CalendarTrigger>
我面临的问题是StartBoundary。我不想为StartBoundary提供修复日期,因为过去的日期不会激活任务。这也是一个强制性的论点。
无论如何我能做到吗?
答案 0 :(得分:0)
如果问题是您的XML文件中有一个过期日期已过期,并且您每次使用该文件时都需要更新它,那么一种方法是在您阅读时进行简单的文本替换内容。例如,此代码将使占位符与将来5分钟的日期交换:
$xml = (Get-Content -Path PathtoXml.xml -Raw) -replace `
"(?<=<StartBoundary>).*(?=</StartBoundary>)", (Get-Date).AddMinutes(5).ToString('s')
答案 1 :(得分:0)
您做出了错误的假设。 StartBoundary
可以过去。任务执行将相对于StartBoundary
中设置的时间进行。在这种情况下,日期是无关紧要的。日期也可以是将来的时间。然后该任务将在该日期之后运行。
要激活您的任务,您还需要启用它:
<Settings>
<Enabled>true</enabled>
</Settings>