Windows Server 2012, Windows 8 환경에서 작업 스케줄러를 사용하여 새로운 작업을 생성할 경우 기본값으로 아래 그림과 같이 3일 이상 작업이 실행되면 중지되는 옵션이 활성화 되어 있습니다. 아래 참고자료에 링크된 social.technet 포럼에 원문 아티클이 있으며 필요에 의해 이를 참고하여 테스트 후 포스팅하였습니다.
위 설정된 값을 파워쉘 명령으로 보기 위해서 get-scheduledtask 명령을 사용할 수 있습니다.
AllowDemandStart : True
AllowHardTerminate : True
Compatibility : Vista
DeleteExpiredTaskAfter :
DisallowStartIfOnBatteries : True
Enabled : True
ExecutionTimeLimit : P3D
Hidden : False
IdleSettings : TEST_TaskIdleSettings
MultipleInstances : IgnoreNew
NetworkSettings : TEST_TaskNetworkSettings
Priority : 7
RestartCount : 0
RestartInterval :
RunOnlyIfIdle : False
RunOnlyIfNetworkAvailable : False
StartWhenAvailable : False
StopIfGoingOnBatteries : True
WakeToRun : False
DisallowStartOnRemoteAppSession : False
UseUnifiedSchedulingEngine : False
MaintenanceSettings :
volatile : False
PSComputerName :
위 결과를 통해 알 수 있듯이 기본값으로 ExecutionTimeLimit 값이 P3D(3 Days)로 되어 있는 것을 알 수 있습니다.
파워쉘 명령을 통해 이 옵션을 비활성화 혹은 변경할 수 있으며 샘플 스크립트는 아래와 같습니다.
다음 예제는 abc 예제 작업에서 해당 설정을 비활성화 하기 위해 ExecutionTimeLimit 값을 PT0S 으로 변경하는 방법입니다. (PT숫자0S)
$scheduler = New-Object -ComObject Schedule.Service
$scheduler.Connect($null, $null, $null, $null)
$taskFolder = $scheduler.GetFolder("")
$task = $taskFolder.GetTask($taskName).Definition
$task.Settings.ExecutionTimeLimit="PT0S"
$taskFolder.RegisterTaskDefinition($taskName, $task, 4, $null, $null, 3) | Out-Null
Duration 에 대한 정의는 아래 링크를 참고해 주십시오.
http://www.w3.org/TR/xmlschema-2/#duration
[참고자료]
Scheduled task configuration
작성자 : Lai Go / 작성일자 : 2014.08.18