# ポリシーのコントロール (設定を構成するポリシーの作成)

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FeSxdNBGFp5KTJfW9PQ9W%2Fimage.png?alt=media&#x26;token=c3b37d39-998f-4d8d-9d7a-9b07a9e3c0e2" alt=""><figcaption></figcaption></figure>

**対象読者:** IT管理者向けです。**ポリシー**でエージェントまたはプラグインの設定を適用・変更し、多数のエンドポイントに同じ構成を一元から配布する例を示します。

***

### 概要 <a href="#overview" id="overview"></a>

**SettingsUpdate**ポリシーでエンドポイントへ構成をプッシュできます。ポリシーは**更新するプラグイン (またはファイル)** と**書き込むJSON**を定義します。エージェント上のジョブ**Process Configuration Policies**がこれらのポリシーを読み、対象プラグインのJSONファイル (例: `Plugins/KeeperPolicy.json`、`Plugins/RedirectEvaluator.json`) に**構成を書き込み**ます。その後、**プラグイン設定のリバート** (メモリ上の設定を新しいファイルに合わせる) および変更反映のための**プラグインの再起動**が必要になることがあります。

**利用場面:**

* 多数のマシンに同一のプラグイン設定を展開する (例: 管理者向けポリシーの強制、リダイレクトルール、KeeperClientの言語上書き)。
* 各エンドポイントのファイルを編集せず、ダッシュボードまたはポリシーストアから設定を変更する。

***

{% stepper %}
{% step %}
**SettingsUpdateポリシーの作成**

SettingsUpdateポリシーには次が含まれます。

* **PolicyType:** `"SettingsUpdate"`
* **Extension:** 少なくとも**PluginName** (または **TargetFile**) と**SettingsJson** (完全なプラグインJSONを1本の文字列として)

**オプション A — プラグイン名で対象を指定**

**Extension.PluginName**でプロセッサが `Plugins/{PluginName}.json` に書き込みます。

```
{
  "PolicyId": "my-settings-update-policy",
  "PolicyName": "Push KeeperPolicy enforce-for-admins setting",
  "PolicyType": "SettingsUpdate",
  "Status": "enabled",
  "Extension": {
    "PluginName": "KeeperPolicy",
    "Action": "Update",
    "SettingsJson": "{ ... full KeeperPolicy.json content as a single string ... }"
  }
}
```

**オプション B — パスでファイルを指定**

**Extension.TargetFile** (アプリケーションルートからの相対パス) をPluginNameの代わりに使います。

```
"Extension": {
  "TargetFile": "Plugins/KeeperPolicy.json",
  "Action": "Update",
  "SettingsJson": "{ ... }"
}
```

**重要:** **SettingsJson**はプラグインJSONの**全体**です。プロセッサはファイルを**丸ごと置換**します。必須フィールド (`id`、`name`、`executablePath`、`Subscription`、`metadata` など) をすべて含めないとプラグインが起動に失敗する場合があります。最も簡単なのは、あるエンドポイントから現在のプラグインJSONをコピーし、必要な設定だけ変更した完全なJSONを**SettingsJson**に入れることです (文字列として。内側の二重引用符は `\"` でエスケープ)。
{% endstep %}

{% step %}
**例 — KeeperPolicy の「管理者に対するポリシーの強制」**

「管理者に対するポリシーの強制」を**オン**にし (管理者でもポリシーに一致しない操作は拒否):

1. エンドポイント (またはテンプレート) から `Plugins/KeeperPolicy.json` の全文を取得する。
2. `metadata.admin.enforce_policies_for_administrators` を `true` に設定する (製品が使うキーに合わせる)。
3. **PluginName:** `"KeeperPolicy"`、**SettingsJson**にその**完全な**JSONを文字列として設定したSettingsUpdateポリシーを作成する。ポリシーストアまたはダッシュボードでポリシーを追加し、適切なコレクション/マシンに割り当てる。
4. エージェントで**Process Configuration Policies**ジョブを実行する (スケジュールまたはオンデマンド)。`Plugins/KeeperPolicy.json` に新しいJSONが書き込まれる。
5. 実行時をファイルに合わせるため**プラグイン設定をリバート**する。\
   `POST /api/PluginSettings/KeeperPolicy/revert` (または**revert-all**)。続けて**KeeperPolicy**プラグインを**再起動**する。\
   `POST /api/plugins/KeeperPolicy/restart`。
   {% endstep %}

{% step %}
**例 — RedirectEvaluator (例: ncpa.cpl のリダイレクト)**

**リダイレクト**構成 (例: ncpa.cpl を Keeper.NetworkConnections へ) をプッシュする場合。

1. 希望どおりの**RedirectEvaluator**プラグインJSONの全文を用意する (`id`、`name`、`executablePath`、`Subscription`、**metadata.redirect**に `enabled: true` と `rules` を含む)。[参考資料: リダイレクト](/keeperpam/jp/endpoint-privilege-manager/reference/redirect-capability.md)および[参考資料: プラグインとタスクの設定](/keeperpam/jp/endpoint-privilege-manager/reference/plugin-and-task-settings.md)をご参照ください。
2. **PluginName:** `"RedirectEvaluator"`、**SettingsJson**にその完全なJSONを**文字列**として設定したSettingsUpdateポリシーを作成する (引用符のエスケープ: `\"`、正規表現内のバックスラッシュは `\\\\` で 1 文字の `\`)。
3. ポリシーを展開し、エージェントで**Process Configuration Policies**を実行する。
4. 必要に応じてリバートと再起動:\
   `POST /api/PluginSettings/RedirectEvaluator/revert`、続けて\
   `POST /api/plugins/RedirectEvaluator/restart`。
   {% endstep %}

{% step %}
**構成プロセッサの実行**

エージェントはSettingsUpdateポリシーを**処理する**ジョブを実行する必要があります。ジョブ名は**Process Configuration Policies**や**configuration-policy-processor**などであることが多いです。ジョブは次の処理を行います。

* ポリシーテンプレートを読み込む (ポリシーストアまたは同期済みポリシーから)。
* **PolicyType**が `"SettingsUpdate"` のポリシーを検出する。
* それぞれについて**Extension.SettingsJson**を**PluginName**または**TargetFile**で決まるファイルに書き込む。

次の方法があります。

* **スケジュールでジョブをトリガーする** (既に設定されている場合)。
* **APIで1回実行する:**\
  `POST /api/Jobs/{jobId}/run`\
  (Process Configuration Policies ジョブの id を使用)。

実行後、ディスク上のプラグインJSONが更新されます。上記のとおり**revert**と**restart**を行い、実行中のプラグインが新しい設定を使うようにします。
{% endstep %}
{% endstepper %}

### まとめ <a href="#summary" id="summary"></a>

<table><thead><tr><th width="91.3333740234375">手順</th><th>操作</th></tr></thead><tbody><tr><td>1</td><td><strong>PolicyType</strong>を <code>"SettingsUpdate"</code> とし、<strong>Extension</strong>に<strong>PluginName</strong> (または<strong>TargetFile</strong>) と<strong>SettingsJson</strong> (完全なプラグインJSONを文字列) を含むポリシーを作成する。</td></tr><tr><td>2</td><td>適切なコレクション/マシンへポリシーを展開する。</td></tr><tr><td>3</td><td>エージェントで<strong>Process Configuration Policies</strong>ジョブを実行する (スケジュールまたはAPI)。</td></tr><tr><td>4</td><td>実行時をファイルに合わせてプラグイン設定をリバートする: <strong>POST /api/PluginSettings/{pluginName}/revert</strong>。</td></tr><tr><td>5</td><td>必要に応じてプラグインを再起動する: <strong>POST /api/plugins/{name}/restart</strong>。</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/policies/policy-examples/advanced-examples/policy-create-a-policy-to-set-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
