> 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 aktivierbar**: vorhandene 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 gesetzt. RealmJoin lieferte bisher einen fest gepinnten, stark gepatchten Build der Open-Source-Chocolatey-CLI aus — 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 von RealmJoin **eigene, speziell entwickelte Implementierung** die läuft **im Prozess** innerhalb des RealmJoin-Dienstes. Sie *emuliert* Chocolatey: es versteht dasselbe Paketformat (`.nupkg`) und verhält sich aus Sicht von Paketautoren und Administratoren genauso, ist jedoch nicht mehr von der veralteten Codebasis von Chocolatey 0.10.3 abhängig.

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

## Wie es funktioniert

* **Engine im Prozess.** Paketinstallationen laufen innerhalb des RealmJoin-Dienstes, statt einen externen `choco.exe`. Die `chocolateyInstall.ps1` jedes Pakets wird in einem PowerShell-Runspace im Prozess ausgeführt.
* **Isolierter Speicher.** Die native Runtime installiert sich in ihr **eigenes** Stammverzeichnis, `C:\ProgramData\RealmJoin\choco\` (mit `lib\`, `extensions\`, und `logs\` Unterordnern). Es schreibt niemals in den Zustand von klassischem Chocolatey unter `C:\ProgramData\chocolatey\` und ändert niemals die systemweite `ChocolateyInstall` Umgebungsvariable. Das bedeutet, dass die native Runtime und ein bereits vorhandenes klassisches Chocolatey **koexistieren** auf demselben Gerät.
* **Automatische Auflösung von Abhängigkeiten.** In der `.nuspec` (wie etwa die [RealmJoin Core Choco Extension](/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 ein kleines Shim bereit unter `%ProgramFiles%\RealmJoin\choco-shim\choco.exe` das solche Aufrufe zurück in die Engine im Prozess leitet, statt zu klassischem Chocolatey. Das Shim wird nicht zum systemweiten `PATH`; es wird Paketskripten nur während ihrer Laufzeit zur Verfügung gestellt.

## Kompatibilität

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

* Bestehende RealmJoin-Pakete (einschließlich allem aus dem [Paket-Store](/de/anwendungsverwaltung/packages/package-store.md)) werden auf die gleiche Weise installiert und deinstalliert.
* Die in der RealmJoin Portal konfigurierten Paketargumente / -parameter funktionieren weiterhin.
* Die [RealmJoin Core Choco Extension](/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 neuen Gerät mit aktiviertem nativen Runtime, `winchoco` werden Pakete während der Registrierung nativ installiert, wobei ihre Abhängigkeiten automatisch aufgelöst werden.

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

## Wie man es verwendet

Die Runtime wird über eine RealmJoin **Einstellung**gesteuert, sodass Sie sie zentral verwalten können, anstatt einzelne Clients anzufassen. RealmJoin-Einstellungen werden vererbt, was bedeutet, dass Sie einen **mandantenweiten Standard** und, wo nötig, **für bestimmte Gruppen überschreiben** (und die darin enthaltenen Objekte).

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

Einstellungswert: `true` / `false`
{% 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>false</code></td><td>RealmJoin verwaltet auf dem Gerät Pakete vom Typ Chocolatey.</td></tr><tr><td><code>Chocolatey.UseNativeRuntime</code></td><td><code>false</code></td><td>Hauptschalter. Wenn <code>false</code>, erfolgen Installationen weiterhin über die klassische <code>choco.exe</code>. Wenn <code>true</code>, alle <code>winchoco</code> Installationen laufen über die native Runtime im Prozess.</td></tr><tr><td><code>Chocolatey.DisableShim</code></td><td><code>false</code></td><td>Nur relevant, wenn <code>UseNativeRuntime = true</code>. Wenn <code>true</code>, jedes Paketskript, das ein externes <code>choco.exe</code> fehlschlägt, anstatt über das Shim geleitet zu werden — nützlich, um Skripte aufzudecken, die noch auf ein externes Binary zugreifen.</td></tr></tbody></table>

{% stepper %}
{% step %}

### Aktivieren Sie es zunächst für eine Pilotgruppe

Öffnen Sie die Einstellungen einer RealmJoin **Gruppe** die eine kleine Anzahl von Pilotgeräten enthält, und setzen Sie `Chocolatey.UseNativeRuntime` zu `true` es dort. Da Gruppeneinstellungen Vorrang vor dem mandantenweiten 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. Stellen Sie sicher, dass die Installationen erfolgreich sind, und prüfen Sie die Protokolle, wenn etwas nicht stimmt (siehe [Probleme bei der Paketinstallation](/de/problembehandlung-and-faq/troubleshooting/package-installation-issues.md)).
{% endstep %}

{% step %}

### Rollen Sie es mandantenweit aus

Wenn Sie sicher sind, setzen Sie `Chocolatey.UseNativeRuntime` zu `true` da die **mandantenweiten 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 Mandanteneinstellung / Gruppenüberschreibung wie die anderen unter [Allgemeine Einstellungen](/de/verwaltung-and-einstellungen/general.md) (zum Beispiel die **Client-Konfiguration** und **LAPS-Konfiguration** Mandanteneinstellungen beschriebenen).
{% endhint %}

## Was ist die Standardeinstellung

Die 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 mandantenweit oder für eine bestimmte Gruppe. So können Sie den neuen Runtime in Ihrem eigenen Tempo einführen und ihn ebenso einfach wieder zurückrollen, solange die Funktion in Beta ist.

## Bestehende Geräte migrieren

Die native Runtime und klassisches Chocolatey **koexistieren** auf einem Gerät so lange wie nötig nebeneinander bestehen. Wenn Sie die native Runtime auf einem Gerät aktivieren, auf dem bereits von klassischem Chocolatey installierte Pakete vorhanden sind:

* Bestehende von RealmJoin verwaltete Pakete funktionieren weiterhin und werden **zu** nicht allein deshalb neu installiert, weil der Runtime gewechselt hat — ihr installierter Zustand wird beim Wechsel übernommen, sodass es keine Neuinstallationswelle gibt.
* Neue Installationen und Upgrades laufen über den nativen Runtime; die klassische Installation bleibt unverändert auf der Festplatte, bis sie ausdrücklich entfernt wird.

{% hint style="info" %}
Die flächendeckende Entfernung von klassischem Chocolatey ist als separater, koordinierter Schritt geplant. Bis dahin koexistiert der native Runtime problemlos mit einer verbliebenen klassischen Installation, sodass es keine harte Frist gibt, sie aufzuräumen.
{% endhint %}

Für ein einzelnes Gerät (zum Beispiel im Support oder in der QA) kann ein Administrator ein Gerät mit dem `migrieren Sie` Verb von 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 den nativen Runtime neu installieren und dann die klassische Version entfernen
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --yes
```

{% endcode %}

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

## Protokolle & Fehlerbehebung

Installationen über den nativen Runtime schreiben ein paketbezogenes Protokoll nach:

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

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

### Datei- & Pfadreferenz

| Pfad                                              | Zweck                                              |
| ------------------------------------------------- | -------------------------------------------------- |
| `C:\ProgramData\RealmJoin\choco\lib\<id>`         | Installationsstamm für Pakete des nativen Runtime. |
| `C:\ProgramData\RealmJoin\choco\extensions\<id>`  | Automatisch importierte PowerShell-Hilfsmodule.    |
| `C:\ProgramData\RealmJoin\choco\logs\<id>`        | Protokolle pro Installation (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.
