知識マップ: タスクスケジューラのタスクが実行されない・0x1で終わる ── 原因の切り分けと安全な運用設計
記事「タスクスケジューラのタスクが実行されない・0x1で終わる ── 原因の切り分けと安全な運用設計」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
タスクスケジューラの「実行されない」「0x1で終わる」といった事故の大半は、実行アカウントがどのログオン種別で動くかの理解のずれに起因する。Password/S4Uでの実行には「バッチ ジョブとしてログオン」の権利が必要で、ドメイン環境ではパスワードをドメインコントローラーが自動管理するgMSAが第一候補になる。原因の切り分けは既定で無効なタスク履歴を有効にしたうえでイベントIDを追うのが起点で、0x1のような小さい値は起動したプログラム自身の終了コードであり、robocopyのように正常時でも非ゼロを返す規約には注意が要る。電源条件・StartWhenAvailable・多重起動制御(MultipleInstances)・実行時間の上限はいずれも既定値のまま気づかず運用されがちな設定で、別タスクや手動実行との衝突は名前付きミューテックスによる排他で補う必要がある。
flowchart LR
accTitle: タスクスケジューラの安定運用の知識マップ
accDescr: タスクスケジューラのログオン種別・gMSA・電源条件や多重起動制御などの既定値、イベントIDや前回の実行結果を使った切り分け、名前付きミューテックスによる排他の関係を示す図。
task_scheduler["タスクスケジューラの無人実行"]
task_logon_type["ログオン種別(LogonType)"]
batch_logon_right["「バッチ ジョブとしてログオン」の権利"]
gmsa["gMSA(group Managed Service Account)"]
domain_controller["ドメインコントローラー"]
scheduledtasks_module["PowerShellのScheduledTasksモジュール"]
task_history["タスク履歴(Operationalログ)"]
task_event_id["タスクスケジューラのイベントID"]
task_result_code["「前回の実行結果」(終了コード)"]
robocopy_exit_code["robocopyの終了コード規約"]
task_power_condition["電源条件(AC電源時のみ実行)"]
start_when_available["StartWhenAvailable(開始時刻を逃した場合の実行)"]
multiple_instances_policy["多重起動制御(MultipleInstances)"]
execution_time_limit["実行時間の上限(ExecutionTimeLimit)"]
named_mutex["名前付きMutex"]
admin_rights["管理者権限"]
task_scheduler -->|"で構成できる"| task_logon_type
task_logon_type -.->|"前提とする"| batch_logon_right
gmsa -.->|"前提とする"| batch_logon_right
gmsa -.->|"で構成できる"| task_logon_type
gmsa -->|"前提とする"| domain_controller
task_scheduler -.->|"利用する"| gmsa
task_scheduler -->|"で構成できる"| scheduledtasks_module
gmsa -.->|"で構成できる"| scheduledtasks_module
task_scheduler -->|"で確認できる"| task_history
task_history -->|"利用する"| task_event_id
task_result_code -.->|"で確認できる"| task_event_id
robocopy_exit_code -.->|"原因になり得る"| task_result_code
task_scheduler -->|"利用する"| task_result_code
task_scheduler -->|"で構成できる"| task_power_condition
task_scheduler -->|"で構成できる"| start_when_available
task_scheduler -->|"で構成できる"| multiple_instances_policy
task_scheduler -->|"で構成できる"| execution_time_limit
named_mutex -->|"推奨される対応"| multiple_instances_policy
admin_rights -->|"用いるのは非推奨"| task_scheduler
概念間の関係(全19件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- タスクスケジューラの無人実行はログオン種別(LogonType)で構成できます。
- ログオン種別(LogonType)は「バッチ ジョブとしてログオン」の権利を前提とします。
- gMSA(group Managed Service Account)は「バッチ ジョブとしてログオン」の権利を前提とします。
- gMSA(group Managed Service Account)はログオン種別(LogonType)で構成できます。
- gMSA(group Managed Service Account)はドメインコントローラーを前提とします。
- タスクスケジューラの無人実行はgMSA(group Managed Service Account)を利用します。
- タスクスケジューラの無人実行はPowerShellのScheduledTasksモジュールで構成できます。
- gMSA(group Managed Service Account)はPowerShellのScheduledTasksモジュールで構成できます。
- タスクスケジューラの無人実行はタスク履歴(Operationalログ)で確認できます。
- タスク履歴(Operationalログ)はタスクスケジューラのイベントIDを利用します。
- 「前回の実行結果」(終了コード)はタスクスケジューラのイベントIDで確認できます。
- robocopyの終了コード規約は「前回の実行結果」(終了コード)の原因になることがあります。
- タスクスケジューラの無人実行は「前回の実行結果」(終了コード)を利用します。
- タスクスケジューラの無人実行は電源条件(AC電源時のみ実行)で構成できます。
- タスクスケジューラの無人実行はStartWhenAvailable(開始時刻を逃した場合の実行)で構成できます。
- タスクスケジューラの無人実行は多重起動制御(MultipleInstances)で構成できます。
- タスクスケジューラの無人実行は実行時間の上限(ExecutionTimeLimit)で構成できます。
- 名前付きMutexは多重起動制御(MultipleInstances)に対する本記事の推奨です。
- 管理者権限をタスクスケジューラの無人実行に用いることは推奨されません。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。