こんにちは Windows サポートの林です。
今回は Windows Server 2012 R2 におけるタスクスケジューラの「停止するまでの時間」設定の問題についてご案内致します。
問題概要
タスクスケジューラのタスク設定における “停止するまでの時間” 設定は [トリガー] タブおよび [設定] タブの 2 箇所設定する場所があります。しかし、トリガー設定にて “繰り返し間隔” (繰り返し実行設定) が設定されており、更に [設定] タブのみ “停止するまでの時間” が設定されている場合、この停止時間設定が期待通りに動作せず設定した時間を経過してもタスクが終了されない問題があります。この問題は Windows Server 2012 R2 で発生し、Windows Server 2016 以降では発生致しません。
原因
Windows Server 2012 R2 では UBPM(Unified Background Process Manager) とタスクエンジン(taskeng.exe) の 2 つのタスクスケジュールエンジンがございます(詳しくはこちらを参照)。本問題は誤って本来 UBPM から実行されるべきではないタスクが誤って実行されてしまうために発生します。具体的には繰り返し実行が設定されているタスクにて [設定] タブのみ “停止するまでの時間” 設定がされていると本事象は発生しますが Windows Server 2012 R2 では UBPM は繰り返し実行が設定されているタスクはサポートされておらず、本来は従来のタスクエンジン(taskeng.exe) からタスクが実行される必要がございます。しかし、内部ロジックの問題で誤って UBPM からタスクが実行されてしまい、UBPM は繰り返し実行設定をサポートしていないために設定通りに停止しない問題が発生致します。
対処方法
上記のように本件は [設定] および [トリガー] の 2 箇所の設定のうち、[設定] タブのみ “停止するまでの時間” が設定されている場合に発生します。対処は下記のように [トリガー] タブの “停止するまでの時間” を設定することでタスクエンジンからタスクが起動されるようになり、停止時間設定も期待通り動作するようになります。