我有一些使用計劃任務每天運行的PowerShell腳本,計劃任務是使用PowerShell本身創建的,並且工作得非常好。尋找關於如何從powershell更改計劃任務的設置的信息
標識希望能夠添加一個設置爲計劃任務如下: -
我希望能夠改變設置 - >停止任務,如果它運行超過3天。
我可以改變這種設置,我設法在PowerShell中創建計劃任務,我可以更改觸發器,操作等,但我不能看到如何影響設置,而無需在任務調度程序內手動更改它們。從下面的鏈接
我有一些使用計劃任務每天運行的PowerShell腳本,計劃任務是使用PowerShell本身創建的,並且工作得非常好。尋找關於如何從powershell更改計劃任務的設置的信息
標識希望能夠添加一個設置爲計劃任務如下: -
我希望能夠改變設置 - >停止任務,如果它運行超過3天。
我可以改變這種設置,我設法在PowerShell中創建計劃任務,我可以更改觸發器,操作等,但我不能看到如何影響設置,而無需在任務調度程序內手動更改它們。從下面的鏈接
幫助:
http://powershell.com/cs/blogs/tips/archive/2013/06/21/changing-scheduled-tasks-with-powershell.aspx
解決方案:
$service = New-Object -ComObject Schedule.Service
# Can connect remotely as well, currently doing it local
$service.Connect($env:COMPUTERNAME)
# navigate to desired folder where the scheduled task is in TaskScheduler
$folder = $service.GetFolder('\Microsoft\Windows\XXX_DestinationFolder_XXX')
# Get the desired task
$task = $folder.GetTask('XXX_TaskName_XXX')
$definition = $task.Definition
# Incase you are interested in changing more settings
# $definition | Get-Member
# for 10 days it is 'P10D', by default it is 3 days so it will be 'P3D'
$definition.Settings | Where-Object {$_.ExecutionTimeLimit = 'P10D'}
# finally updating
$folder.RegisterTaskDefinition($task.Name, $definition, 4, $null, $null, $null)
如果你可以升級到PowerShell的4.0或更高版本,可以使用ScheduledTask CMDlets創建/更新他們。以下是更改時間限制的示例:
$STSet = New-ScheduledTaskSettingsSet -ExecutionTimeLimit 72:00:00
Set-ScheduledTask ScheduledTaskName -Settings $STSet