如何使用PowerShell定义计划任务的到期日期?



是否有一种方法可以让我使用PowerShell在30天内每天每15分钟运行一次任务,并且在这30天后它过期?

我已经完成了调度,但我找不到任何可以使用New-ScheduledTaskSettingsSet设置到期日期的地方。

代码:

$trigger = New-ScheduledTaskTrigger -Daily -At 9am
$principal = New-ScheduledTaskPrincipal -UserId $user -RunLevel Highest -LogonType ServiceAccount
$task = Register-ScheduledTask -TaskName 'KView' -Description 'Kview setup for monitoring' -Action $action -Trigger $trigger -Principal $principal
#$task.Triggers.StartBoundary = $date
#$task.Triggers.EndBoundary = $date.AddDays(30)
$task.Triggers.Repetition.Duration = 'P1D'
$task.Triggers.Repetition.Interval = 'PT15M'
$task | Set-ScheduledTask -User $user -Password $password

下面是为您设置有效期的代码示例,只需更改TargetTask名称和EndBoundary值。

注意触发器是数组。这个计划任务只有一个触发器,所以我们将其保留为$Task.Triggers[0]

# Fetch the scheduled task object
$Task = Get-ScheduledTask -TaskName "Test"
# Set the date and time it will expire
$Task.Triggers[0].EndBoundary = [DateTime]::Now.AddDays(1).ToString("yyyy-MM-dd'T'HH:mm:ss")
$Task | Set-ScheduledTask

在创建新的计划任务时,也可以使用https://stackoverflow.com/a/68535661/3095259中@Otter指定的相同方法。在本例中,不是从系统中提取计划任务,而是创建一个新任务,如下面的示例所示。

$TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File $ScriptPath"
$TaskTrigger = New-ScheduledTaskTrigger -Once -At $Start -RepetitionInterval $Interval
$TaskTrigger.EndBoundary = $EndDateTime
$TaskPrincipal = New-ScheduledTaskPrincipal -Id $User -UserId $User -LogonType Password -RunLevel Limited
$TaskSetting = New-ScheduledTaskSettingsSet -Compatibility Win8
$Task = New-ScheduledTask -Description $Description -Action $TaskAction -Principal $TaskPrincipal -Trigger $TaskTrigger -Settings $TaskSetting
$Task | Register-ScheduledTask -TaskName $Name -TaskPath $TaskPath -User $User -Password $Password | Out-Null

相关内容

最新更新