> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/ja/realmjoin-agent/realmjoin-client/native-choco-runtime.md).

# Native Choco Runtime

{% hint style="info" %}
Native Choco Runtime は **RealmJoin Agent 4.21.6 (Beta)**&#x3067;導入されました。機能は **オプション**既存のクライアントは、ネイティブ ランタイムを明示的に有効にするまで、従来の Chocolatey エンジンを引き続き使用します。
{% endhint %}

## 概要

RealmJoin Agent が Intune の外部でソフトウェア パッケージをインストールする場合（ [パッケージのインストール](/ja/realmjoin-agent/realmjoin-client/deploy-apps.md#package-installation)を参照）、従来は [Chocolatey](https://chocolatey.org/) を基盤となるパッケージ エンジンとして利用していました。RealmJoin は、オープンソースの Chocolatey CLI の固定済みで大きくパッチを適用したビルドを提供しており、そのバージョンは **0.10.3** で、 `choco.exe` として `C:\ProgramData\chocolatey\`.

その **Native Choco Runtime** は、その同梱された Chocolatey バイナリを RealmJoin 独自の **目的特化の実装** に置き換えます。 **プロセス内で** RealmJoin サービス内で実行されます。これは *シムとして* Chocolatey と互換性があります。同じパッケージ形式（`.nupkg`）を理解し、パッケージ作成者と管理者の観点では同じように動作しますが、もはや古くなった Chocolatey 0.10.3 のコードベースには依存しません。

言い換えると、すでに使用しているパッケージは変更なしで引き続き動作し、その下のエンジンだけが変わります。

## 仕組み

* **プロセス内エンジン。** パッケージのインストールは、外部の `choco.exe`。 `chocolateyInstall.ps1` をシェル経由で呼び出すのではなく、RealmJoin サービス内で実行されます。各パッケージの
* **分離されたストレージ。** ネイティブ ランタイムは **自身の** ルート `C:\ProgramData\RealmJoin\choco\` （ `lib\`, `extensions\`、および `logs\` のサブフォルダー付き）にインストールされます。従来の Chocolatey の状態である `C:\ProgramData\chocolatey\` には書き込まず、マシン全体の `ChocolateyInstall` 環境変数も変更しません。つまり、ネイティブ ランタイムと既存の従来型 Chocolatey は同じデバイス上で **共存** できます。
* **依存関係の自動解決。** の `.nuspec` で宣言されたパッケージ依存関係（たとえば [RealmJoin Core Choco Extension](/ja/realmjoin-agent/recommended-packages.md#realmjoin-core-choco-extension)）は、構成済みのソースから自動的に解決・インストールされます。
* **`choco.exe` シム。** 一部のパッケージ スクリプトは `choco.exe` を直接呼び出します。これらを動作させ続けるため、ランタイムは `%ProgramFiles%\RealmJoin\choco-shim\choco.exe` に小さなシムを展開し、そのような呼び出しを従来の Chocolatey ではなくプロセス内エンジンへ戻します。このシムはシステムの `PATH`には追加されず、パッケージ スクリプトの実行中のみ利用可能になります。

## 互換性

Native Choco Runtime は **そのまま置き換え可能な代替**:

* 既存の RealmJoin パッケージ（ [パッケージストア](/ja/apurikshon/packages/package-store.md)のすべてを含む）
* は、インストールとアンインストールが同じように行われます。
* その [RealmJoin Core Choco Extension](/ja/realmjoin-agent/recommended-packages.md#realmjoin-core-choco-extension) RealmJoin Portal で構成されたパッケージ引数 / パラメーターは引き続き機能します。
* [パッケージ スクリプト内で使用されるヘルパー cmdlet は引き続き利用できます。](/ja/realmjoin-agent/realmjoin-client/realmjoin-esp.md) / Autopilot もサポートされています。ネイティブ ランタイムを有効にした新規デバイスでは、 `winchoco` パッケージが登録中にネイティブにインストールされ、依存関係も自動的に解決されます。

{% hint style="warning" %}
このランタイムはベータ版のため、本番展開前にパイロット リングで最も重要なパッケージを検証することをお勧めします。一般提供までに対処できるよう、動作の違いがあれば RealmJoin Support までご報告ください。
{% endhint %}

## 使い方

このランタイムは RealmJoin の **設定**で選択されるため、個々のクライアントに触れることなく中央で制御できます。RealmJoin の設定は継承されるため、 **Tenant 全体の既定値** を設定し、必要に応じて **特定のグループごとに上書き** できます（およびそれらに含まれるオブジェクトも）。

{% hint style="info" %}
設定キー: `Chocolatey.UseNativeRuntime`

設定値: `はい` / `いいえ`
{% endhint %}

以下の設定が動作を制御します:

<table><thead><tr><th>設定</th><th width="120">既定値</th><th>意味</th></tr></thead><tbody><tr><td><code>Chocolatey.Enabled</code></td><td><code>いいえ</code></td><td>デバイス上の Chocolatey 型パッケージを RealmJoin が管理します。</td></tr><tr><td><code>Chocolatey.UseNativeRuntime</code></td><td><code>いいえ</code></td><td>主スイッチ。 <code>いいえ</code>のとき、インストールは引き続き従来の <code>choco.exe</code>を経由します。 <code>はい</code>のとき、すべての <code>winchoco</code> インストールはプロセス内のネイティブ ランタイムを経由します。</td></tr><tr><td><code>Chocolatey.DisableShim</code></td><td><code>いいえ</code></td><td>にのみ関連します。 <code>UseNativeRuntime = true</code>を経由します。 <code>はい</code>、外部の <code>choco.exe</code> を呼び出すパッケージ スクリプトは、シム経由でルーティングされるのではなく、明示的に失敗します。まだ外部バイナリを呼び出しているスクリプトを見つけるのに役立ちます。</td></tr></tbody></table>

{% stepper %}
{% step %}

### まずはパイロット グループで有効にする

RealmJoin の **グループ** 設定を開き、少数のパイロット デバイスを含むグループで `Chocolatey.UseNativeRuntime` から `はい` を設定します。グループ設定は Tenant 全体の既定値より優先されるため、それらのデバイスだけが新しいエンジンに切り替わります。
{% endstep %}

{% step %}

### パッケージを検証する

パイロット デバイスに通常のパッケージ割り当てと更新を実行させます。インストールが成功することを確認し、何かおかしい場合はログを確認してください（ [パッケージのインストールに関する問題](/ja/toraburushtinguto-faq/troubleshooting/package-installation-issues.md)).
{% endstep %}

{% step %}

### Tenant 全体に展開する

確信が持てたら、 `Chocolatey.UseNativeRuntime` から `はい` なぜなら **Tenant 全体の既定値** を設定して、すべてのクライアントで使用されるようにします。必要に応じて、一部のグループだけは一時的に従来のエンジンに残すこともできます。
{% endstep %}
{% endstepper %}

{% hint style="info" %}
構成は、 [全般設定](/ja/to/general.md) で説明されている他のエージェント設定と同じ Tenant 設定 / グループ上書きモデルに従います（たとえば **クライアント構成** および **LAPS 構成** のテナント設定を使用します）。
{% endhint %}

## 既定値は何か

Native Choco Runtime は **既定では無効** (`Chocolatey.UseNativeRuntime = false`）。管理者がネイティブ ランタイムを有効にするまで、クライアントは従来の同梱 Chocolatey 0.10.3 エンジンを使い続けます。これは、ベータ期間中に新しいランタイムを自分のペースで採用し、同じように簡単にロールバックできることを意味します。

## 既存デバイスの移行

ネイティブ ランタイムと従来の Chocolatey は **共存** 必要な限りデバイス上で共存できます。既に従来の Chocolatey でインストールされたパッケージがあるデバイスでネイティブ ランタイムを有効にすると:

* 既存の RealmJoin 管理パッケージは引き続き動作し、 **ない** ランタイムが変わっただけで再インストールされることはありません。インストール済みの状態は切り替え後も引き継がれるため、再インストールの嵐は発生しません。
* 新規インストールとアップグレードはネイティブ ランタイムを経由し、従来のインストールは明示的に削除されるまでディスク上に残り、そのままです。

{% hint style="info" %}
従来の Chocolatey を全体から削除することは、別の調整済みステップとして計画されています。それまでは、ネイティブ ランタイムは残存する従来インストールと問題なく共存できるため、片付けるための厳しい期限はありません。
{% endhint %}

個々のデバイス（たとえばサポートや QA の際）については、管理者がシムの `移行してください` 動詞を **昇格した** シェルから実行して、そのマシンを従来の Chocolatey から移行できます:

{% code overflow="wrap" %}

```powershell
# 変更を加えずに、何が起こるかをプレビューする
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --dry-run

# 状態を持つパッケージをネイティブ ランタイム経由で再インストールしてから、従来版を削除する
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --yes
```

{% endcode %}

{% hint style="warning" %}
`choco migrate` は **単一デバイス向けの管理者ヘルパー** です（サポート、開発/QA、単発のクリーンアップ）。 **ない** フリート全体に変更を展開するための仕組みではありません。その場合は Tenant / グループ設定を使用してください。
{% endhint %}

## ログとトラブルシューティング

ネイティブ ランタイムのインストールは、各パッケージごとのログを次に書き込みます:

```
C:\ProgramData\RealmJoin\choco\logs\<package-id>\<timestamp>_<version>_<operation>.log
```

（各パッケージにつき直近 10 件のみ保持）。これは従来の Chocolatey の `C:\ProgramData\chocolatey\logs\`とは別です。サポート依頼用のログを収集する際は、 `C:\ProgramData\RealmJoin\` フォルダーを [パッケージのインストールに関する問題](/ja/toraburushtinguto-faq/troubleshooting/package-installation-issues.md).

### ファイル & パス リファレンス

| パス                                                | 目的                                |
| ------------------------------------------------- | --------------------------------- |
| `C:\ProgramData\RealmJoin\choco\lib\<id>`         | ネイティブ ランタイムのパッケージ インストール ルート。     |
| `C:\ProgramData\RealmJoin\choco\extensions\<id>`  | 自動インポートされる PowerShell ヘルパー モジュール。 |
| `C:\ProgramData\RealmJoin\choco\logs\<id>`        | インストールごとのログ（各パッケージの最新 10 件）。      |
| `C:\Program Files\RealmJoin\choco-shim\choco.exe` | その `choco.exe` シム。                |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/ja/realmjoin-agent/realmjoin-client/native-choco-runtime.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
