@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/powershell-execution-policy-script-signing/#article>
    schema:about <https://comcomponent.com/knowledge/execution-policy/>, <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:mentions <https://comcomponent.com/knowledge/powershell/>, <https://comcomponent.com/knowledge/remotesigned-policy/>, <https://comcomponent.com/knowledge/allsigned-execution-policy/>, <https://comcomponent.com/knowledge/bypass-policy/>, <https://comcomponent.com/knowledge/unblock-file/>, <https://comcomponent.com/knowledge/set-authenticodesignature/>, <https://comcomponent.com/knowledge/zone-identifier/>, <https://comcomponent.com/knowledge/alternate-data-stream/>, <https://comcomponent.com/knowledge/trusted-publisher-store/>, <https://comcomponent.com/knowledge/self-signed-cert/>, <https://comcomponent.com/knowledge/trust-anchor-risk/>, <https://comcomponent.com/knowledge/cert-drive/>, <https://comcomponent.com/knowledge/code-signing-timestamp/>, <https://comcomponent.com/knowledge/group-policy/>, <https://comcomponent.com/knowledge/admin-rights/>, <https://comcomponent.com/knowledge/task-scheduler/> .

<https://comcomponent.com/knowledge/execution-policy/> a skos:Concept ;
    skos:prefLabel "PowerShell実行ポリシー"@ja ;
    skos:definition "PowerShellスクリプトの実行可否と署名要求を制御する設定。既定はクライアントOSでRestricted、Windows ServerとPowerShell 7ではRemoteSigned。"@ja ;
    skos:altLabel "Execution Policy" ;
    skos:altLabel "RemoteSigned" .

<https://comcomponent.com/knowledge/code-signing-cert/> a skos:Concept ;
    skos:prefLabel "コード署名証明書"@ja ;
    skos:definition "ソフトウェアの発行元を証明し、改ざんを検出するための証明書。"@ja ;
    skos:altLabel "Authenticode証明書"@ja .

<https://comcomponent.com/knowledge/powershell/> a skos:Concept ;
    skos:prefLabel "PowerShell"@ja ;
    skos:definition "オブジェクトパイプラインとエラー処理機構を持つ、Microsoftが最も堅牢で最新のWindows自動化に推奨するコマンドラインシェル兼スクリプト言語。"@ja ;
    skos:altLabel "Windows PowerShell" ;
    skos:altLabel "pwsh" ;
    skos:altLabel "PowerShell 7" ;
    ks:uses <https://comcomponent.com/knowledge/execution-policy/> ;
    ks:uses <https://comcomponent.com/knowledge/unblock-file/> ;
    ks:uses <https://comcomponent.com/knowledge/set-authenticodesignature/> .

<https://comcomponent.com/knowledge/group-policy/> a skos:Concept ;
    skos:prefLabel "グループポリシー"@ja ;
    skos:definition "Active Directoryドメイン環境でWindowsの設定を集中構成する仕組み。"@ja ;
    skos:altLabel "GPO" ;
    skos:altLabel "Group Policy" .

<https://comcomponent.com/knowledge/bypass-policy/> a skos:Concept ;
    skos:prefLabel "Bypassポリシー"@ja ;
    skos:definition "警告もプロンプトも出さず、あらゆるスクリプトを実行できる実行ポリシーの値。PowerShellを組み込んだ独自のセキュリティモデルを持つアプリケーション向けに用意されている。"@ja ;
    skos:altLabel "Bypass" ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/task-scheduler/> .

<https://comcomponent.com/knowledge/remotesigned-policy/> a skos:Concept ;
    skos:prefLabel "RemoteSignedポリシー"@ja ;
    skos:definition "インターネット由来(Zone.Identifier付き)のスクリプトにのみ信頼された発行元の署名を要求し、ローカルで作成したスクリプトは署名なしで実行できる実行ポリシーの値。PowerShell 7の既定。"@ja ;
    skos:altLabel "RemoteSigned" ;
    ks:uses <https://comcomponent.com/knowledge/zone-identifier/> .

<https://comcomponent.com/knowledge/zone-identifier/> a skos:Concept ;
    skos:prefLabel "Zone.Identifier(Mark of the Web)"@ja ;
    skos:definition "ブラウザーなどでダウンロードしたファイルに付与される代替データストリーム。ファイルの出所(インターネット由来など)を記録し、SmartScreenや保護ビューの判定材料になる。"@ja ;
    skos:altLabel "Mark of the Web" ;
    skos:altLabel "MOTW" ;
    skos:broader <https://comcomponent.com/knowledge/alternate-data-stream/> ;
    ks:storedIn <https://comcomponent.com/knowledge/alternate-data-stream/> .

<https://comcomponent.com/knowledge/alternate-data-stream/> a skos:Concept ;
    skos:prefLabel "代替データストリーム(ADS)"@ja ;
    skos:definition "NTFSの1ファイルが持てる、名前のない既定ストリーム以外の追加のデータストリーム。「ファイル名:ストリーム名」の構文で読み書きする。"@ja ;
    skos:altLabel "ADS" ;
    skos:altLabel "Alternate Data Stream" .

<https://comcomponent.com/knowledge/unblock-file/> a skos:Concept ;
    skos:prefLabel "Unblock-File"@ja ;
    skos:definition "ファイルに付いたZone.Identifier代替データストリームを除去し、実行ポリシーを変更せずにブロックを解除するコマンドレット。エクスプローラーのプロパティの「許可する」ボタンと同じ操作。"@ja ;
    skos:altLabel "Unblock-Fileコマンドレット"@ja ;
    ks:prevents <https://comcomponent.com/knowledge/zone-identifier/> .

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

<https://comcomponent.com/knowledge/allsigned-execution-policy/> a skos:Concept ;
    skos:prefLabel "実行ポリシーAllSigned"@ja ;
    skos:definition "ローカル作成分も含むすべてのスクリプトと構成ファイルに、信頼された発行元によるAuthenticode署名を要求する実行ポリシーの値。未分類の発行元は実行前に確認を求める。"@ja ;
    skos:altLabel "AllSigned" ;
    ks:requires <https://comcomponent.com/knowledge/code-signing-cert/> .

<https://comcomponent.com/knowledge/set-authenticodesignature/> a skos:Concept ;
    skos:prefLabel "Set-AuthenticodeSignature"@ja ;
    skos:definition "コード署名証明書でファイルにAuthenticode署名を付与するコマンドレット。署名はファイル末尾に# SIG #コメントブロックとして埋め込まれ、既存の署名があれば置き換える。"@ja ;
    skos:altLabel "Set-AuthenticodeSignatureコマンドレット"@ja ;
    ks:uses <https://comcomponent.com/knowledge/code-signing-cert/> .

<https://comcomponent.com/knowledge/code-signing-timestamp/> a skos:Concept ;
    skos:prefLabel "コード署名のタイムスタンプ"@ja ;
    skos:definition "署名時刻をRFC 3161タイムスタンプサーバーで証明する付与情報。証明書の期限が切れても署名の有効性を保つ。"@ja ;
    skos:altLabel "RFC 3161タイムスタンプ"@ja .

<https://comcomponent.com/knowledge/cert-drive/> a skos:Concept ;
    skos:prefLabel "Cert:ドライブ"@ja ;
    skos:definition "証明書ストアをファイルシステムのように操作するPowerShellのプロバイダー。"@ja ;
    skos:altLabel "Certificate Provider" .

<https://comcomponent.com/knowledge/self-signed-cert/> a skos:Concept ;
    skos:prefLabel "アドホックな自己署名証明書"@ja ;
    skos:definition "検証用にツールで自前発行したサーバー/クライアント証明書。鍵管理の仕組みを持たず、検証環境限定・期限つきでの利用が原則。適切に運用される社内CAのルート証明書(これも技術的には自己署名)とは区別する。"@ja ;
    skos:altLabel "自己署名証明書"@ja ;
    ks:storedIn <https://comcomponent.com/knowledge/cert-drive/> .

<https://comcomponent.com/knowledge/trusted-publisher-store/> a skos:Concept ;
    skos:prefLabel "信頼された発行元ストア"@ja ;
    skos:definition "信頼する発行元のコード署名証明書を登録する論理ストア。"@ja ;
    skos:altLabel "TrustedPublisher" ;
    skos:broader <https://comcomponent.com/knowledge/certificate-store/> .

<https://comcomponent.com/knowledge/trust-anchor-risk/> a skos:Concept ;
    skos:prefLabel "信頼の起点の悪用リスク"@ja ;
    skos:definition "ルートストアに植えた証明書の秘密キーが漏れると、任意のサイトやソフトウェアへのなりすましの足場になるリスク。"@ja .

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

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/execution-policy/> ;
    schema:description "PowerShellはスクリプトの実行可否を実行ポリシーで制御する"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/execution-policy/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/group-policy/> ;
    schema:description "組織で実行ポリシーを統制するグループポリシーの「スクリプトの実行を有効にする」設定は、PowerShell側のすべてのスコープの設定に優先する。ドメイン参加環境でグループポリシーを配布している場合に限る"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bypass-policy/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/group-policy/> ;
    schema:description "Processスコープの-ExecutionPolicy指定を含むBypassの指定は、グループポリシーで実行ポリシーが管理されている環境では効かない"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/remotesigned-policy/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/zone-identifier/> ;
    schema:description "RemoteSignedは、ファイルに付くZone.Identifier(Mark of the Web)の有無でインターネット由来かどうかを判定し、印付きの未署名スクリプトの実行を止める"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies>, <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/unblock-file> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/zone-identifier/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/alternate-data-stream/> ;
    schema:description "Zone.Identifierはインターネットゾーンを示す値3を持つ、NTFSの代替データストリームとして保存される"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/fileio/file-streams>, <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/unblock-file> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/unblock-file/> ;
    rdf:predicate ks:prevents ;
    rdf:object <https://comcomponent.com/knowledge/zone-identifier/> ;
    schema:description "Unblock-FileはZone.Identifier代替データストリームを除去し、その印によるRemoteSigned環境での実行ブロックを解除する"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/unblock-file> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/execution-policy/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/admin-rights/> ;
    schema:description "既定のLocalMachineスコープでSet-ExecutionPolicyを実行するには管理者権限が必要だが、CurrentUserスコープなら一般ユーザーでも変更できる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.security/set-executionpolicy> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/allsigned-execution-policy/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:description "AllSignedはローカル作成分を含むすべてのスクリプトに信頼された発行元の署名を要求するため、コード署名証明書が前提になる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_signing> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/remotesigned-policy/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:description "RemoteSigned環境でインターネット由来のスクリプトを配布用に署名するなら、コード署名証明書が必要になる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_signing> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/set-authenticodesignature/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-cert/> ;
    schema:description "Set-AuthenticodeSignatureはCert:ドライブなどから取得したコード署名証明書で署名を付与する"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.security/set-authenticodesignature> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/set-authenticodesignature/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/code-signing-timestamp/> ;
    schema:description "証明書の有効期限が切れても署名を有効に保ちたい場合、署名時に-TimestampServerでタイムスタンプを付けると、証明書の有効期限が切れてもスクリプトの署名が有効であり続ける"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.security/set-authenticodesignature>, <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_signing> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/code-signing-cert/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/cert-drive/> ;
    schema:description "Windowsの証明書ストアで管理する場合、コード署名証明書はCert:ドライブ経由でCert:\\CurrentUser\\Myなどのストアから取得できる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.security/about/about_certificate_provider> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/self-signed-cert/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/trusted-publisher-store/> ;
    schema:description "自己署名証明書をワークグループの他端末でも通すには、公開部分を各端末の「信頼されたルート証明機関」と「信頼された発行元」ストアへインポートする必要がある"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_signing>, <https://learn.microsoft.com/windows-server/identity/ad-cs/configure-trusted-roots-disallowed-certificates> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/self-signed-cert/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/trust-anchor-risk/> ;
    schema:description "自己署名証明書を各端末の信頼されたルート証明機関ストアへ配ると、その証明書自体が端末にとっての信頼の起点になるため、秘密鍵が漏れれば任意のコードへの署名に悪用され得る。鍵管理のないアドホックな自己署名を本番の信頼ストアへ配布した場合に限る"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_signing> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/self-signed-cert/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/cert-drive/> ;
    schema:description "New-SelfSignedCertificateで作成する自己署名証明書も、-CertStoreLocationで指定したCert:ドライブ配下のストア(例: Cert:\\CurrentUser\\My)に格納される"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/pki/new-selfsignedcertificate> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/unblock-file/> ;
    schema:description "PowerShellはUnblock-Fileでダウンロードファイルの実行ブロックを解除できる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/unblock-file> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/powershell/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/set-authenticodesignature/> ;
    schema:description "PowerShellはSet-AuthenticodeSignatureでスクリプトにAuthenticode署名を付与できる"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.security/set-authenticodesignature> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bypass-policy/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/task-scheduler/> ;
    schema:description "グループポリシー管理下ではそもそも効かず、うっかり事故を防ぐ安全装置を恒久的に外す運用になるため、タスクスケジューラでのBypass常用は推奨されない"@ja ;
    ks:evidence <https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
