@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-task-scheduler-reliable-scheduled-tasks/#article>
    schema:about <https://comcomponent.com/knowledge/task-scheduler/>, <https://comcomponent.com/knowledge/task-logon-type/> ;
    schema:mentions <https://comcomponent.com/knowledge/gmsa/>, <https://comcomponent.com/knowledge/task-history/>, <https://comcomponent.com/knowledge/multiple-instances-policy/>, <https://comcomponent.com/knowledge/execution-time-limit/>, <https://comcomponent.com/knowledge/start-when-available/>, <https://comcomponent.com/knowledge/task-power-condition/>, <https://comcomponent.com/knowledge/task-result-code/>, <https://comcomponent.com/knowledge/task-event-id/>, <https://comcomponent.com/knowledge/robocopy-exit-code/>, <https://comcomponent.com/knowledge/named-mutex/>, <https://comcomponent.com/knowledge/batch-logon-right/>, <https://comcomponent.com/knowledge/scheduledtasks-module/>, <https://comcomponent.com/knowledge/admin-rights/>, <https://comcomponent.com/knowledge/domain-controller/> .

<https://comcomponent.com/knowledge/task-scheduler/> a skos:Concept ;
    skos:prefLabel "タスクスケジューラの無人実行"@ja ;
    skos:definition "指定したアカウントで、スケジュールやログオンなどのトリガーに従いプログラムを実行するWindowsの仕組み。ログオン種別(対話トークン・パスワード保存・S4Uなど)の設定によっては、ユーザーがログオンしていなくても実行できる。"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/task-logon-type/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/scheduledtasks-module/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/task-history/> ;
    ks:uses <https://comcomponent.com/knowledge/task-result-code/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/task-power-condition/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/start-when-available/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/multiple-instances-policy/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/execution-time-limit/> .

<https://comcomponent.com/knowledge/task-logon-type/> a skos:Concept ;
    skos:prefLabel "ログオン種別(LogonType)"@ja ;
    skos:definition "タスクの実行アカウントをどう認証するかを決める内部区分。対話トークン(InteractiveToken)・パスワードを保存するPassword・パスワードを保存しないS4Uのいずれかを取り、S4Uはネットワーク上のリソースと暗号化ファイル(EFS)へのアクセスができない。"@ja ;
    skos:altLabel "LogonType" ;
    skos:altLabel "InteractiveToken" ;
    skos:altLabel "Password" ;
    skos:altLabel "S4U" .

<https://comcomponent.com/knowledge/batch-logon-right/> a skos:Concept ;
    skos:prefLabel "「バッチ ジョブとしてログオン」の権利"@ja ;
    skos:definition "Password/S4Uのログオン種別でタスクを実行するアカウントに必要なローカルセキュリティポリシー上の権利。Administratorsには既定で付与されている。"@ja ;
    skos:altLabel "SeBatchLogonRight" .

<https://comcomponent.com/knowledge/gmsa/> a skos:Concept ;
    skos:prefLabel "gMSA(group Managed Service Account)"@ja ;
    skos:definition "パスワードの自動生成・自動更新とSPN管理の簡素化を提供するActive Directoryドメインのサービスアカウント。ドメインコントローラー側のKDSルートキーの準備を前提とする。"@ja ;
    skos:altLabel "グループ管理サービスアカウント"@ja ;
    ks:requires <https://comcomponent.com/knowledge/domain-controller/> .

<https://comcomponent.com/knowledge/domain-controller/> a skos:Concept ;
    skos:prefLabel "ドメインコントローラー"@ja ;
    skos:definition "Active Directoryのディレクトリサービスを提供し、KDCの機能やNTLMのパススルー認証の相手を担うサーバー。"@ja ;
    skos:altLabel "DC" .

<https://comcomponent.com/knowledge/scheduledtasks-module/> a skos:Concept ;
    skos:prefLabel "PowerShellのScheduledTasksモジュール"@ja ;
    skos:definition "New-ScheduledTaskAction・New-ScheduledTaskTrigger・New-ScheduledTaskSettingsSet・Register-ScheduledTaskなどでタスク定義をコードとして作成・登録できるPowerShellモジュール。"@ja ;
    skos:altLabel "Register-ScheduledTask" ;
    skos:altLabel "New-ScheduledTaskAction" ;
    skos:altLabel "New-ScheduledTaskPrincipal" .

<https://comcomponent.com/knowledge/task-history/> a skos:Concept ;
    skos:prefLabel "タスク履歴(Operationalログ)"@ja ;
    skos:definition "個別タスクの実行結果を記録するイベントログ。既定で無効になっており、有効化しないと失敗した事実そのものが記録に残らない。"@ja ;
    skos:altLabel "すべてのタスク履歴を有効にする"@ja ;
    skos:altLabel "TaskScheduler Operational" ;
    ks:uses <https://comcomponent.com/knowledge/task-event-id/> .

<https://comcomponent.com/knowledge/task-event-id/> a skos:Concept ;
    skos:prefLabel "タスクスケジューラのイベントID"@ja ;
    skos:definition "TaskScheduler Operationalログに記録される、タスクの進行状況を表す番号。100(開始)・129(プロセス起動)・200/201(操作開始/完了)・102(正常終了)・202/203(操作完了失敗/起動失敗)・322(多重起動によるスキップ)などがある。"@ja ;
    skos:altLabel "イベント100"@ja ;
    skos:altLabel "イベント201"@ja ;
    skos:altLabel "イベント202"@ja ;
    skos:altLabel "イベント322"@ja .

<https://comcomponent.com/knowledge/task-result-code/> a skos:Concept ;
    skos:prefLabel "「前回の実行結果」(終了コード)"@ja ;
    skos:definition "タスクのプロパティに表示される終了コード等の値。0x413xx系はタスクスケジューラの状態コード、0x8007xxxxはWindowsのエラーコード、0x1のような小さい値は起動されたプログラム自身の終了コードを表す。"@ja ;
    skos:altLabel "Last Run Result" ;
    skos:altLabel "0x1" .

<https://comcomponent.com/knowledge/robocopy-exit-code/> a skos:Concept ;
    skos:prefLabel "robocopyの終了コード規約"@ja ;
    skos:definition "robocopyが返す終了コードの意味。0〜7は失敗なしの組み合わせ(1はすべてのファイルを正常にコピー)で、8以上がコピー処理中に少なくとも1件の失敗があったことを示す。"@ja .

<https://comcomponent.com/knowledge/task-power-condition/> a skos:Concept ;
    skos:prefLabel "電源条件(AC電源時のみ実行)"@ja ;
    skos:definition "既定で有効な、コンピューターがAC電源で使用されている場合のみタスクを開始する条件。バッテリー節約機能が有効な間は対話型以外のタスクのトリガーが遅延されることもある。"@ja ;
    skos:altLabel "AllowStartIfOnBatteries" .

<https://comcomponent.com/knowledge/start-when-available/> a skos:Concept ;
    skos:prefLabel "StartWhenAvailable(開始時刻を逃した場合の実行)"@ja ;
    skos:definition "PCがシャットダウンしていて開始時刻を過ぎた場合に、次の予定を待たずすぐにタスクを実行する設定。既定では無効。"@ja ;
    skos:altLabel "StartWhenAvailable" .

<https://comcomponent.com/knowledge/multiple-instances-policy/> a skos:Concept ;
    skos:prefLabel "多重起動制御(MultipleInstances)"@ja ;
    skos:definition "前回の実行が続いている間に次のスケジュール時刻が来たときの動作を決める設定。既定はIgnoreNew(新しいインスタンスを開始しない)。"@ja ;
    skos:altLabel "IgnoreNew" ;
    skos:altLabel "Queue" ;
    skos:altLabel "Parallel" .

<https://comcomponent.com/knowledge/execution-time-limit/> a skos:Concept ;
    skos:prefLabel "実行時間の上限(ExecutionTimeLimit)"@ja ;
    skos:definition "タスクの実行を強制終了するまでの時間の上限。既定は3日で、超過するとインスタンスが停止させられる。"@ja ;
    skos:altLabel "停止するまでの時間"@ja .

<https://comcomponent.com/knowledge/named-mutex/> a skos:Concept ;
    skos:prefLabel "名前付きMutex"@ja ;
    skos:definition "名前を指定して作成し、その名前を知っている他のプロセスからも同じインスタンスを参照できる、相互排他用のWindowsカーネルオブジェクト。"@ja ;
    skos:altLabel "Named Mutex" ;
    skos:altLabel "名前付きミューテックス"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/multiple-instances-policy/> .

<https://comcomponent.com/knowledge/admin-rights/> a skos:Concept ;
    skos:prefLabel "管理者権限"@ja ;
    skos:definition "コンピューター全体の設定を変更できる権限。"@ja ;
    skos:altLabel "昇格"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/task-scheduler/> .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/task-logon-type/> ;
    schema:description "タスクの実行アカウントは、対話トークン(InteractiveToken)・パスワード保存(Password)・S4Uのいずれかのログオン種別で構成する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/taskschedulerschema-logontype-simpletype> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-logon-type/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/batch-logon-right/> ;
    schema:description "Password または S4U のログオン種別を選んだ場合に限り、実行するアカウントには「バッチ ジョブとしてログオン」の権利が必要である(「ログオンしているときのみ実行」の対話トークンでは不要)"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/security-contexts-for-running-tasks> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/batch-logon-right/> ;
    schema:description "gMSAをタスクスケジューラの該当ログオン種別で使う場合は「バッチ ジョブとしてログオン」の権利が必要で、gMSAだからといって免除されるわけではない。Windowsサービスの実行アカウントに使う場合に必要なのはサービスとしてのログオン権である"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/security-contexts-for-running-tasks> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/task-logon-type/> ;
    schema:description "タスクスケジューラのプリンシパルとしてgMSAを使う場合、LogonTypeにはPasswordを指定するが、パスワードそのものは渡さない"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtaskprincipal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/domain-controller/> ;
    schema:description "gMSAのパスワードはドメインコントローラーが自動管理し、許可されたホストがそれを取得する"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/identity/ad-ds/manage/group-managed-service-accounts/group-managed-service-accounts/manage-group-managed-service-accounts> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/gmsa/> ;
    schema:description "実行アカウントにgMSAを選ぶ場合、タスクスケジューラはそれを実行アカウントとしてサポートする"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/identity/ad-ds/manage/group-managed-service-accounts/group-managed-service-accounts/manage-group-managed-service-accounts> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/scheduledtasks-module/> ;
    schema:description "タスクはPowerShellのScheduledTasksモジュールでタスク定義をコード化して作成・登録できる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtasksettingsset> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gmsa/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/scheduledtasks-module/> ;
    schema:description "タスクスケジューラのプリンシパルとしてgMSAを指定する場合、New-ScheduledTaskPrincipalの-UserIdと-LogonTypeを使う"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtaskprincipal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/task-history/> ;
    schema:description "「実行されない」の原因調査は、既定で無効なタスク履歴を有効にしたうえでの確認が起点になる"@ja ;
    ks:evidence <https://learn.microsoft.com/troubleshoot/windows-server/system-management-components/troubleshoot-scheduled-tasks-not-running> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-history/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/task-event-id/> ;
    schema:description "タスク履歴の各行はイベントIDを持ち、100(開始)→129(プロセス起動)→200/201(操作開始/完了)→102(正常終了)の順に並ぶのが正常系である"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc774961(v=ws.10)> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-result-code/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/task-event-id/> ;
    schema:description "「前回の実行結果」の0x1は、対応する201イベントの戻り値(ResultCode)と突き合わせて確認できるが、両者は必ずしも一致しない"@ja ;
    ks:evidence <https://learn.microsoft.com/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc774961(v=ws.10)> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/robocopy-exit-code/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/task-result-code/> ;
    schema:description "robocopyは正常にファイルをコピーした場合でも終了コード1を返すため、そのまま使うと「前回の実行結果」が0x1に見えることがある"@ja ;
    ks:evidence <https://learn.microsoft.com/windows-server/administration/windows-commands/robocopy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/task-result-code/> ;
    schema:description "タスクスケジューラは起動したプログラムの終了コードを「前回の実行結果」として記録するが、これはタスクスケジューラ自身のエラーではない"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/task-scheduler-error-and-success-constants> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/task-power-condition/> ;
    schema:description "タスクは既定で、コンピューターがAC電源で使用されている場合のみ開始する電源条件を持つ"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/what-s-new-in-task-scheduler> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/start-when-available/> ;
    schema:description "開始時刻を逃した場合にすぐタスクを実行するかどうかは、既定で無効なStartWhenAvailableで明示的に決める"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtasksettingsset> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/multiple-instances-policy/> ;
    schema:description "前回の実行が続いている間に次のスケジュール時刻が来たときの扱いは、既定IgnoreNewのMultipleInstancesで決める"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtasksettingsset> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/task-scheduler/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/execution-time-limit/> ;
    schema:description "タスクの実行を強制終了するまでの時間は、既定3日のExecutionTimeLimitで決める"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/scheduledtasks/new-scheduledtasksettingsset> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/named-mutex/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/multiple-instances-policy/> ;
    schema:description "MultipleInstancesが守るのは同じタスク定義の中だけなので、別タスクや手動実行との衝突まで防ぐにはスクリプト側で名前付きミューテックスによる排他を持たせることが推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/dotnet/api/system.threading.mutex> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/admin-rights/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/task-scheduler/> ;
    schema:description "パスワード管理が不要で強力だからという理由だけで、業務データを扱うジョブの実行アカウントにSYSTEMのような強い権限を安易に使うのは避けるべきである"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/taskschd/security-contexts-for-running-tasks> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
