@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/2026/06/01/000-powershell-script-log-maintenance-automation/#article>
    schema:about <https://comcomponent.com/knowledge/log-maintenance-automation/>, <https://comcomponent.com/knowledge/shouldprocess-whatif/> ;
    schema:mentions <https://comcomponent.com/knowledge/select-string/>, <https://comcomponent.com/knowledge/get-childitem/>, <https://comcomponent.com/knowledge/convertfrom-json/>, <https://comcomponent.com/knowledge/convertto-json/>, <https://comcomponent.com/knowledge/export-csv/>, <https://comcomponent.com/knowledge/move-item/>, <https://comcomponent.com/knowledge/start-transcript/>, <https://comcomponent.com/knowledge/task-scheduler/>, <https://comcomponent.com/knowledge/scheduledtasks-cmdlets/>, <https://comcomponent.com/knowledge/send-mailmessage/>, <https://comcomponent.com/knowledge/regular-expression/>, <https://comcomponent.com/knowledge/unintended-regex-match/>, <https://comcomponent.com/knowledge/json-configuration-file/> .

<https://comcomponent.com/knowledge/log-maintenance-automation/> a skos:Concept ;
    skos:prefLabel "ログ運用の自動化(調査・アーカイブ)"@ja ;
    skos:definition "ログの検索・エラー行抽出・古いログのアーカイブといった日次/定期のログ運用作業を、PowerShellスクリプトで安全に自動化すること。"@ja ;
    skos:altLabel "ログメンテナンス自動化"@ja ;
    skos:altLabel "ログ調査・アーカイブの自動化"@ja ;
    ks:uses <https://comcomponent.com/knowledge/select-string/> ;
    ks:uses <https://comcomponent.com/knowledge/get-childitem/> ;
    ks:uses <https://comcomponent.com/knowledge/export-csv/> ;
    ks:uses <https://comcomponent.com/knowledge/convertfrom-json/> ;
    ks:uses <https://comcomponent.com/knowledge/convertto-json/> ;
    ks:uses <https://comcomponent.com/knowledge/move-item/> ;
    ks:uses <https://comcomponent.com/knowledge/start-transcript/> ;
    ks:uses <https://comcomponent.com/knowledge/task-scheduler/> .

<https://comcomponent.com/knowledge/shouldprocess-whatif/> a skos:Concept ;
    skos:prefLabel "SupportsShouldProcessと-WhatIf/-Confirm"@ja ;
    skos:definition "[CmdletBinding(SupportsShouldProcess)]を宣言すると自動で追加される-WhatIf/-Confirmパラメーターと、$PSCmdlet.ShouldProcess()による実行可否の分岐の仕組み。"@ja ;
    skos:altLabel "ShouldProcess" ;
    skos:altLabel "WhatIf" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/move-item/> .

<https://comcomponent.com/knowledge/select-string/> a skos:Concept ;
    skos:prefLabel "Select-String"@ja ;
    skos:definition "テキストやファイルの中から正規表現または単純一致でパターンを検索し、前後行も表示できるPowerShellのコマンドレット。"@ja ;
    skos:altLabel "-Context" ;
    skos:altLabel "-SimpleMatch" ;
    skos:broader <https://comcomponent.com/knowledge/powershell/> ;
    ks:uses <https://comcomponent.com/knowledge/regular-expression/> .

<https://comcomponent.com/knowledge/get-childitem/> a skos:Concept ;
    skos:prefLabel "Get-ChildItem"@ja ;
    skos:definition "指定したパス以下のファイルやフォルダーを一覧・検索するPowerShellコマンドレット。-Recurseで再帰的に列挙でき、-Filterや-LiteralPath、LastWriteTimeによる絞り込みと組み合わせて使う。"@ja ;
    skos:altLabel "Get-ChildItemコマンドレット"@ja .

<https://comcomponent.com/knowledge/export-csv/> a skos:Concept ;
    skos:prefLabel "Export-Csv"@ja ;
    skos:definition "パイプラインのオブジェクトをCSVファイルへ書き出すPowerShellのコマンドレット。"@ja .

<https://comcomponent.com/knowledge/convertfrom-json/> a skos:Concept ;
    skos:prefLabel "ConvertFrom-Json"@ja ;
    skos:definition "JSON形式の文字列をPowerShellのオブジェクトへ変換するコマンドレット。設定ファイルをスクリプトから読み込む用途で使われる。"@ja ;
    skos:altLabel "ConvertFrom-Jsonコマンドレット"@ja .

<https://comcomponent.com/knowledge/convertto-json/> a skos:Concept ;
    skos:prefLabel "ConvertTo-Json"@ja ;
    skos:definition "PowerShellのオブジェクトをJSON文字列に変換するコマンドレット。-Depthの既定値は2で、それより深い階層は展開されない。"@ja ;
    skos:altLabel "-Depth" ;
    skos:broader <https://comcomponent.com/knowledge/invoke-restmethod/> .

<https://comcomponent.com/knowledge/move-item/> a skos:Concept ;
    skos:prefLabel "Move-Item"@ja ;
    skos:definition "ファイルやフォルダーを別の場所へ移動するPowerShellコマンドレット。古いログのアーカイブ処理で実際の移動を行う部分に使われる。"@ja ;
    skos:altLabel "Move-Itemコマンドレット"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/shouldprocess-whatif/> .

<https://comcomponent.com/knowledge/start-transcript/> a skos:Concept ;
    skos:prefLabel "Start-Transcript"@ja ;
    skos:definition "セッションのコマンドとコンソール出力をまるごとテキストファイルに記録するコマンドレットで、Stop-Transcriptで停止する。"@ja ;
    skos:altLabel "トランスクリプト記録"@ja .

<https://comcomponent.com/knowledge/json-configuration-file/> a skos:Concept ;
    skos:prefLabel "JSON設定ファイル"@ja ;
    skos:definition "対象パスや調査条件などの実行条件を、スクリプト本体とは別のJSONファイルに分離して持たせる方式。スクリプトを編集せずに環境ごとの条件を変更できる。"@ja ;
    skos:altLabel "JSON構成ファイル"@ja .

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

<https://comcomponent.com/knowledge/scheduledtasks-cmdlets/> a skos:Concept ;
    skos:prefLabel "ScheduledTasksモジュールのコマンドレット群"@ja ;
    skos:definition "New-ScheduledTaskActionでタスクの実行コマンドを、New-ScheduledTaskTriggerで起動条件を作り、Register-ScheduledTaskでローカルコンピューターへタスクを登録する、PowerShellのScheduledTasksモジュールが提供するコマンドレット群。"@ja ;
    skos:altLabel "New-ScheduledTaskAction" ;
    skos:altLabel "New-ScheduledTaskTrigger" ;
    skos:altLabel "Register-ScheduledTask" ;
    skos:broader <https://comcomponent.com/knowledge/task-scheduler/> .

<https://comcomponent.com/knowledge/regular-expression/> a skos:Concept ;
    skos:prefLabel "正規表現"@ja ;
    skos:definition "文字列パターンを記述するための表記法。Select-Stringの-Patternは既定でこの表記法として解釈される。"@ja ;
    skos:altLabel "Regex" ;
    skos:altLabel "Regular Expression" .

<https://comcomponent.com/knowledge/unintended-regex-match/> a skos:Concept ;
    skos:prefLabel "意図しない正規表現マッチ"@ja ;
    skos:definition "検索文字列をリテラルのつもりで書いたときに、正規表現の制御文字(.など)が働いて、本来当たるべきでない行に一致したり、当たるべき行を逃したりすること。"@ja ;
    skos:altLabel "正規表現の制御文字による誤マッチ"@ja ;
    skos:broader <https://comcomponent.com/knowledge/regular-expression/> .

<https://comcomponent.com/knowledge/send-mailmessage/> a skos:Concept ;
    skos:prefLabel "Send-MailMessageコマンドレット"@ja ;
    skos:definition "SMTPサーバーへの安全な接続を保証しないという理由で公式に非推奨(obsolete)とされた、PowerShellのメール送信コマンドレット。"@ja ;
    skos:altLabel "Send-MailMessage" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/log-maintenance-automation/> .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/select-string/> ;
    schema:description "ログの中身からERROR・WARN・FATALなどのパターンに一致する行を抽出する処理はSelect-Stringで行う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/get-childitem/> ;
    schema:description "調査対象ログの検索や、期限を過ぎた古いログの一覧化はGet-ChildItemとLastWriteTimeの絞り込みで行う"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/export-csv/> ;
    schema:description "検索結果やアーカイブ対象の一覧はlog-hits.csvやarchive-targets.csvとしてExport-Csvでレポート化する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/export-csv> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/convertfrom-json/> ;
    schema:description "JSON設定ファイルの内容はConvertFrom-Jsonでオブジェクトとして読み込まれる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/convertto-json/> ;
    schema:description "実行結果の件数や条件の要約はConvertTo-Jsonでsummary.jsonとして保存する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/move-item/> ;
    schema:description "古いログのアーカイブはMove-Itemによるファイルの移動で行い、削除は行わない"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/move-item> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/start-transcript/> ;
    schema:description "実行記録はStart-Transcriptでセッション全体をtranscript.txtとして残す"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.host/start-transcript?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/json-configuration-file/> ;
    schema:description "この記事の構成では、対象フォルダーや保持日数などの実行条件をJSON設定ファイルに分離し、スクリプト本体を編集せずに環境ごとに差し替えられるようにしている。ログ運用の自動化一般に必須の方式ではなく、他の設定方式(ハードコード・環境変数・psd1など)でも成立する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/json-configuration-file/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/convertfrom-json/> ;
    schema:description "PowerShellスクリプトでは、JSON設定ファイルはConvertFrom-Jsonでオブジェクト化して読み込まれる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/move-item/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/shouldprocess-whatif/> ;
    schema:description "ログを移動する関数はSupportsShouldProcessを付け、Move-Itemの直前で$PSCmdlet.ShouldProcess()により実行するか予行だけにするかを判断する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_cmdletbindingattribute?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/shouldprocess-whatif/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/move-item/> ;
    schema:description "変更処理であるログの移動を実行する前に、-WhatIfで移動予定だけを確認する予行を行うことが推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions_cmdletbindingattribute?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/task-scheduler/> ;
    schema:description "手動実行で問題がなければ、タスクスケジューラにpwsh.exeの実行を登録して毎日深夜に定期実行できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/new-scheduledtaskaction?view=windowsserver2025-ps> ;
    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/scheduledtasks-cmdlets/> ;
    schema:description "PowerShellから登録する場合、タスクスケジューラへのタスク登録はNew-ScheduledTaskAction・New-ScheduledTaskTrigger・Register-ScheduledTaskのPowerShellコマンドレットで行える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/scheduledtasks/new-scheduledtaskaction?view=windowsserver2025-ps> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/select-string/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/regular-expression/> ;
    schema:description "Select-Stringの-Patternに渡した値は既定で正規表現として解釈される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/select-string/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/unintended-regex-match/> ;
    schema:description "検索文字列をリテラルのつもりで書き、正規表現の制御文字(.など)を含めたままにすると、意図しない行にマッチしたり、当たるべき行を逃したりする"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/send-mailmessage/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/log-maintenance-automation/> ;
    schema:description "Send-MailMessageはMicrosoft Learn上でobsolete(旧式)と明記されており、この記事のような自動化スクリプトの新規のメール通知実装には推奨されない"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/send-mailmessage?view=powershell-7.6> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
