タスク スケジューラーのイベント ログに 'エラー値: 2147942402' が出力されてタスクの起動に失敗する。

こんにちは。Windows サポートの高橋です。皆さんは Windows に標準でサポートされている “タスク スケジューラー” はご存じでしょうか。

下記のようなアプリケーションを一度はご覧いただいたことがあるかもしれません。

Task Scheduler

タスク スケジューラーでは、”タスク” という単位で特定のアプリケーションやスクリプト等を実行することが可能であり、特定の時間に指定したユーザーで起動する等の細かい設定が可能になります。

タスクの登録方法としては、上記画面のタスク スケジューラーから、GUI 操作により登録する方法に加え、PoweShell のコマンドレット および “schtasks.exe“ とよばれるプログラムによりコマンドで登録する方法があります。

Schtasks コマンドでは、タスクの作成や設定の変更、削除、および実行など様々な動作を指定できるオプションが用意されており、一度だけ実行したいタスクの場合 /Z オプションを付与して実行後にタスクを削除することも可能です

先日 Windows サポート チームに Windows Server 2012 R2 の環境において schtasks コマンドに /z オプションを付与して登録したタスクの起動が失敗して、エラーのイベントに 'エラー値: 2147942402' が出力されたとのお問合せがありましたため、同様の状況が発生した際のご参考情報としてご案内したいと思います。

簡単に言うと  /z オプションを付与して schtasks コマンドから作成したタスクの実行に失敗する状況になります。

事象発生の前提条件について:

以下のコマンドの実行例の通り、/Z オプションを付与した場合に上記の事象が発生する状況が確認されました。

schtasks コマンド実行例:

> schtasks /Create /TN <タスク名> /TR <実行タスク> /SC ONCE /SD 2017/MM/DD /ST hh:mm /RU System /RL HIGHEST /F /V1 /Z

上記で登録されたタスクは 2017 年 MM 月 DD 日 hh 時 mm 分に System アカウントの権限で 一度のみ実行された後、登録されたタスクが削除されることを想定しております。/Z オプションはタスク実行後に当該タスクの登録を削除するために指定します。

/V1 オプションは /Z オプションを指定するために必要なオプションになり、タスクの構成をWindows Vista より以前の Windows 製品の設定とするために指定します。

事象発生時のイベント ログについて:

schtasks コマンドで /Z オプション付きで登録したタスクの実行が失敗した場合、'エラー値: 2147942402' が以下のエラー イベントに出力されることが確認されています。

------------------------------------------------
ログの名前:         Microsoft-Windows-TaskScheduler/Operational
ソース:           Microsoft-Windows-TaskScheduler
イベント ID:       101
タスクのカテゴリ:      タスクの開始が失敗しました
レベル:           エラー
説明:
タスク スケジューラは、ユーザー "ユーザー名" の "\タスク名" タスクを開始できませんでした。追加データ: エラー値: 2147942402。
------------------------------------------------

------------------------------------------------
ログの名前:         Microsoft-Windows-TaskScheduler/Operational
ソース:           Microsoft-Windows-TaskScheduler
イベント ID:       706
タスクのカテゴリ:      互換性モジュールのタスク状態の更新に失敗しました
レベル:           エラー
説明:
タスク互換性モジュールで、タスク "タスク名.job" を必要な状態 3 に更新できませんでした。追加データ: エラー値: 2147942402。
------------------------------------------------

------------------------------------------------
ログの名前:         Microsoft-Windows-TaskScheduler/Operational
ソース:           Microsoft-Windows-TaskScheduler
イベント ID:       706
タスクのカテゴリ:      互換性モジュールのタスク状態の更新に失敗しました
レベル:           エラー
説明:
タスク互換性モジュールで、タスク "タスク名.job" を必要な状態 4 に更新できませんでした。追加データ: エラー値: 2147942402。
------------------------------------------------

想定される事象発生の状況について:

エラー値: 2147942402 は E_FILE_NOT_FOUND を意味しており、タスク実行時に参照するファイルおよびレジストリが見つからなかった状況を意味しております。

事象発生時にはタスクの実行が要求された後、タスクの開始処理が完了するよりも前にタスクの削除の処理が進んでしまうことで、タスクの開始を行うため必要なレジストリやファイルが削除されてしまった場合に、エラー値: 2147942402 がエラー イベントに出力される状況が想定されています。

事象の対処について:

エラー値: 2147942402 がエラー イベントに出力される詳細な手順および原因については特定に至っていない状況です。現時点におきまして エラー値: 2147942402 がタスク スケジューラーのエラー イベントに出力されてタスクの実行に失敗した場合は、/Z オプションおよび /T1 オプションを指定しないで schtasks コマンドを実行することをご検討ください。