我正在寻找一个在创建/更新任务后立即运行的选项。
此任务在任务计划程序用户界面中可用,但我无法在New-ScheduledTaskTrigger中找到相同的选项。如何使用Powershell实现相同目的?
答案 0 :(得分:2)
您需要的是RegistrationTrigger
,我知道 - 不能简单地使用New-ScheduledTaskTrigger
创建。但可以使用Get-CimClass
:
$trigger = Get-CimClass "MSFT_TaskRegistrationTrigger" -Namespace "Root/Microsoft/Windows/TaskScheduler"
其他信息:
正如帮助告诉我们的那样,我们可以使用-Trigger
传递多个触发器:
-Trigger [<CimInstance[]>] Specifies an array of one or more trigger objects that cause a scheduled task to start.
这意味着,以下内容将创建一个在创建后立即执行的任务以及每次更新 注册后执行的任务:
$trigger1 = New-ScheduledTaskTrigger -Daily -DaysInterval 1 -At 01:00
$trigger2 = Get-CimClass "MSFT_TaskRegistrationTrigger" -Namespace "Root/Microsoft/Windows/TaskScheduler"
New-ScheduledTask -Action $action -Trigger @($trigger1, $trigger2) -Description "Beschreibung" -Settings $settings -Principal $principal | Register-ScheduledTask -TaskName "test"
现在 - 将创建的任务导出到xml文件时,它将如下所示:
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Description>Beschreibung</Description>
<URI>\test</URI>
</RegistrationInfo>
<Triggers>
<RegistrationTrigger>
<Enabled>true</Enabled>
</RegistrationTrigger>
<CalendarTrigger>
<StartBoundary>2017-08-22T01:00:00+02:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
[...]