> 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/de/realmjoin-agent/realmjoin-client/native-choco-runtime.md).

# Native Choco Runtime

{% hint style="info" %}
Die Native Choco Runtime wurde eingeführt mit **RealmJoin Agent 4.21.6 (Beta)**. Die Funktion ist **optional**: bestehende Clients verwenden weiterhin die klassische Chocolatey-Engine, bis Sie die native Runtime explizit aktivieren.
{% endhint %}

## Was es ist

Wenn der RealmJoin Agent Softwarepakete außerhalb von Intune installiert (siehe [Paketinstallation](/de/realmjoin-agent/realmjoin-client/deploy-apps.md#package-installation)), hat er traditionell auf [Chocolatey](https://chocolatey.org/) als zugrunde liegende Paket-Engine verlassen. RealmJoin lieferte einen fest gepinnten, stark gepatchten Build der Open-Source-Chocolatey-CLI — Version **0.10.3** — gebündelt als `choco.exe` unter `C:\ProgramData\chocolatey\`.

Die **Native Choco Runtime** ersetzt diese gebündelte Chocolatey-Binärdatei durch die **eigene, speziell dafür entwickelte Implementierung** die läuft **im Prozess** innerhalb des RealmJoin-Dienstes. Sie *stellt einen Shim bereit* für Chocolatey: Es versteht dasselbe Paketformat (`.nupkg`) und verhält sich aus Sicht eines Paketautors und Administrators genauso, hängt aber nicht mehr von der alternden Codebasis von Chocolatey 0.10.3 ab.

Mit anderen Worten: Die Pakete, die Sie bereits verwenden, funktionieren unverändert weiter — nur die Engine darunter ändert sich.

## So funktioniert es

* **In-Process-Engine.** Paketinstallationen laufen innerhalb des RealmJoin-Dienstes, anstatt einen externen `choco.exe`. Die `chocolateyInstall.ps1` jedes Pakets wird in einem In-Process-PowerShell-Runspace ausgeführt.
* **Isolierter Speicher.** Die native Runtime installiert in ihr **eigenes** Stammverzeichnis, `C:\ProgramData\RealmJoin\choco\` (mit `lib\`, `extensions\`, und `logs\` Unterordnern). Sie schreibt nie in den Zustand von klassischem Chocolatey unter `C:\ProgramData\chocolatey\` und ändert nie die systemweite `ChocolateyInstall` Umgebungsvariable. Das bedeutet, dass die native Runtime und ein bereits vorhandenes klassisches Chocolatey **koexistieren** auf demselben Gerät.
* **Automatische Abhängigkeitsauflösung.** In der `.nuspec` (wie die [RealmJoin Core Choco-Erweiterung](/de/realmjoin-agent/recommended-packages.md#realmjoin-core-choco-extension)) werden automatisch aus Ihren konfigurierten Quellen aufgelöst und installiert.
* **`choco.exe` Shim.** Einige Paketskripte rufen `choco.exe` direkt auf. Damit diese weiterhin funktionieren, stellt die Runtime einen kleinen Shim bereit für `%ProgramFiles%\RealmJoin\choco-shim\choco.exe` der solche Aufrufe zurück an die In-Process-Engine leitet, statt an das klassische Chocolatey. Der Shim wird nicht dem systemweiten `PATH`; er wird Paketskripten nur während ihrer Ausführung zur Verfügung gestellt.

## Kompatibilität

Die Native Choco Runtime ist als **Drop-in-Ersatz**:

* Vorhandene RealmJoin-Pakete (einschließlich allem aus dem [Paket-Store](/de/anwendungsverwaltung/packages/package-store.md)) werden auf dieselbe Weise installiert und deinstalliert.
* Im RealmJoin Portal konfigurierte Paketargumente / Parameter funktionieren weiterhin.
* Die [RealmJoin Core Choco-Erweiterung](/de/realmjoin-agent/recommended-packages.md#realmjoin-core-choco-extension) Hilfs-Cmdlets, die in Paketskripten verwendet werden, bleiben verfügbar.
* [RealmJoin ESP](/de/realmjoin-agent/realmjoin-client/realmjoin-esp.md) / Autopilot werden unterstützt: Auf einem frisch eingerichteten Gerät mit aktivierter nativer Runtime, `winchoco` Pakete werden während der Registrierung nativ installiert, wobei ihre Abhängigkeiten automatisch aufgelöst werden.

{% hint style="warning" %}
Da diese Runtime sich in der Beta befindet, empfehlen wir, Ihre wichtigsten Pakete in einem Pilot-Ring zu validieren, bevor Sie sie tenant-weit ausrollen. Bitte melden Sie alle Verhaltensunterschiede an den RealmJoin-Support, damit wir sie vor der allgemeinen Verfügbarkeit beheben können.
{% endhint %}

## Wie man sie verwendet

Die Runtime wird über eine RealmJoin **Einstellung**, sodass Sie sie zentral steuern können, anstatt einzelne Clients anzufassen. RealmJoin-Einstellungen vererben sich kaskadierend, was bedeutet, dass Sie einen **tenant-weiten Standard** und, falls nötig, **für bestimmte Gruppen überschreiben** (und die darin enthaltenen Objekte).

{% hint style="info" %}
Einstellungsschlüssel: `Chocolatey.UseNativeRuntime`

Einstellungswert: `wahr` / `falsch`
{% endhint %}

Die folgenden Einstellungen steuern das Verhalten:

<table><thead><tr><th>Einstellung</th><th width="120">Standard</th><th>Bedeutung</th></tr></thead><tbody><tr><td><code>Chocolatey.Enabled</code></td><td><code>falsch</code></td><td>RealmJoin verwaltet auf dem Gerät Pakete vom Typ Chocolatey.</td></tr><tr><td><code>Chocolatey.UseNativeRuntime</code></td><td><code>falsch</code></td><td>Hauptschalter. Wenn <code>falsch</code>, erfolgen Installationen weiterhin über die klassische <code>choco.exe</code>. Wenn <code>wahr</code>, alle <code>winchoco</code> Installationen laufen über die In-Process-native Runtime.</td></tr><tr><td><code>Chocolatey.DisableShim</code></td><td><code>falsch</code></td><td>Nur relevant, wenn <code>UseNativeRuntime = true</code>. Wenn <code>wahr</code>, wird jedes Paketskript, das einen externen <code>choco.exe</code> aufruft, mit einer deutlichen Fehlermeldung abgebrochen, statt über den Shim geleitet zu werden — nützlich, um Skripte sichtbar zu machen, die noch auf eine externe Binärdatei zugreifen.</td></tr></tbody></table>

{% stepper %}
{% step %}

### Aktivieren Sie es zuerst für eine Pilotgruppe

Öffnen Sie die Einstellungen einer RealmJoin **Gruppe** , die einen kleinen Satz von Pilotgeräten enthält, und setzen Sie `Chocolatey.UseNativeRuntime` zu `wahr` dort. Da Gruppeneinstellungen Vorrang vor dem tenant-weiten Standard haben, wechseln nur diese Geräte zur neuen Engine.
{% endstep %}

{% step %}

### Validieren Sie Ihre Pakete

Lassen Sie die Pilotgeräte ihre normalen Paketzuweisungen und Upgrades ausführen. Bestätigen Sie, dass die Installationen erfolgreich sind, und prüfen Sie die Protokolle, wenn etwas nicht stimmt (siehe [Probleme bei der Paketinstallation](/de/fehlerbehebung-and-faq/troubleshooting/package-installation-issues.md)).
{% endstep %}

{% step %}

### Rollen Sie es tenant-weit aus

Sobald Sie sicher sind, setzen Sie `Chocolatey.UseNativeRuntime` zu `wahr` da die **tenant-weiten Standard** sodass alle Clients es verwenden. Einzelne Gruppen können sich weiterhin abmelden, wenn Sie sie vorübergehend auf der klassischen Engine belassen müssen.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Die Konfiguration folgt demselben Modell aus Tenant-Einstellung / Gruppenüberschreibung wie die anderen Agenteneinstellungen, die unter [Allgemeine Einstellungen](/de/verwaltung-and-einstellungen/general.md) (zum Beispiel die **Client Configuration** und **LAPS Configuration** Tenant-Einstellungen).
{% endhint %}

## Was ist der Standard

Native Choco Runtime ist **standardmäßig deaktiviert** (`Chocolatey.UseNativeRuntime = false`). Clients verwenden weiterhin die klassische, gebündelte Chocolatey-0.10.3-Engine, bis ein Administrator die native Runtime aktiviert — entweder tenant-weit oder für eine bestimmte Gruppe. So können Sie die neue Runtime in Ihrem eigenen Tempo einführen und sie ebenso leicht wieder zurückrollen, solange die Funktion in Beta ist.

## Vorhandene Geräte migrieren

Die native Runtime und klassisches Chocolatey **koexistieren** können auf einem Gerät so lange koexistieren, wie nötig. Wenn Sie die native Runtime auf einem Gerät aktivieren, das bereits mit klassischem Chocolatey installierte Pakete hat:

* Bestehende von RealmJoin verwaltete Pakete funktionieren weiter und werden **nicht** nicht einfach neu installiert, nur weil sich die Runtime geändert hat — ihr installierter Zustand wird beim Wechsel übernommen, sodass es keine Neuinstallationswelle gibt.
* Neue Installationen und Upgrades laufen über die native Runtime; die klassische Installation bleibt unangetastet auf der Festplatte, bis sie ausdrücklich entfernt wird.

{% hint style="info" %}
Die flottenweite Entfernung von klassischem Chocolatey ist als separater, orchestrierter Schritt geplant. Bis dahin koexistiert die native Runtime problemlos mit einer verbliebenen klassischen Installation, sodass es keine harte Frist für deren Bereinigung gibt.
{% endhint %}

Für ein einzelnes Gerät (zum Beispiel im Support oder in der QA) kann ein Administrator einen Rechner mit dem Befehl des Shims von klassischem Chocolatey weg migrieren `migrieren Sie` Verb aus einer **erhöhten** Shell:

{% code overflow="wrap" %}

```powershell
# Vorschau dessen, was passieren würde, ohne Änderungen vorzunehmen
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --dry-run

# Zustandsbehaftete Pakete über die native Runtime neu installieren, dann die klassische entfernen
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --yes
```

{% endcode %}

{% hint style="warning" %}
`choco migrate` ist ein **Admin-Hilfsprogramm für ein einzelnes Gerät** (Support, Dev/QA, einmalige Bereinigung). Es ist **nicht** nicht der Mechanismus, um die Änderung flächendeckend in einer Flotte auszurollen — verwenden Sie dafür die Tenant-/Gruppeneinstellungen.
{% endhint %}

## Protokolle & Fehlerbehebung

Installationen der nativen Runtime schreiben ein Protokoll pro Paket nach:

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

(auf die 10 neuesten Einträge pro Paket begrenzt). Das ist getrennt von klassischem Chocolateys `C:\ProgramData\chocolatey\logs\`. Wenn Sie Protokolle für eine Supportanfrage sammeln, fügen Sie den `C:\ProgramData\RealmJoin\` Ordner hinzu, wie beschrieben in [Probleme bei der Paketinstallation](/de/fehlerbehebung-and-faq/troubleshooting/package-installation-issues.md).

### Datei- & Pfadangaben

| Path                                              | Zweck                                              |
| ------------------------------------------------- | -------------------------------------------------- |
| `C:\ProgramData\RealmJoin\choco\lib\<id>`         | Installationsstamm für Pakete der nativen Runtime. |
| `C:\ProgramData\RealmJoin\choco\extensions\<id>`  | Automatisch importierte PowerShell-Hilfsmodule.    |
| `C:\ProgramData\RealmJoin\choco\logs\<id>`        | Pro Installation Protokolle (letzte 10 pro Paket). |
| `C:\Program Files\RealmJoin\choco-shim\choco.exe` | Die `choco.exe` Shim.                              |


---

# 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/de/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.
