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

# Native Choco Runtime

{% hint style="info" %}
Le runtime Native Choco a été introduit avec **RealmJoin Agent 4.21.6 (Beta)**. La fonctionnalité est **facultative**: les clients existants continuent d'utiliser le moteur Chocolatey classique jusqu'à ce que vous activiez explicitement le runtime natif.
{% endhint %}

## Ce que c'est

Lorsque l'agent RealmJoin installe des packages logiciels en dehors d'Intune (voir [installation des packages](/fr/agent-realmjoin/realmjoin-client/deploy-apps.md#package-installation)), il s'est traditionnellement appuyé sur [Chocolatey](https://chocolatey.org/) comme moteur de packages sous-jacent. RealmJoin fournissait une version figée et fortement patchée du CLI Chocolatey open source — version **0.10.3** — inclus en tant que `choco.exe` dans `C:\ProgramData\chocolatey\`.

Le **Native Choco Runtime** remplace ce binaire Chocolatey intégré par l' **implémentation propre, spécialement conçue** qui s'exécute **en processus** dans le service RealmJoin. Il *sert de shim à* Chocolatey : il comprend le même format de package (`.nupkg`) et se comporte de la même manière du point de vue de l'auteur du package et de l'administrateur, mais il ne dépend plus de la base de code vieillissante Chocolatey 0.10.3.

Autrement dit, les packages que vous utilisez déjà continuent de fonctionner sans changement — seul le moteur sous-jacent change.

## Fonctionnement

* **Moteur en processus.** Les installations de packages s'exécutent dans le service RealmJoin au lieu d'appeler un processus externe `choco.exe`. Les `chocolateyInstall.ps1` de chaque package est exécuté dans un espace d'exécution PowerShell en processus.
* **Stockage isolé.** Le runtime natif s'installe dans son **propre** racine, `C:\ProgramData\RealmJoin\choco\` (avec `lib\`, `extensions\`, et `logs\` sous-dossiers). Il n'écrit jamais dans l'état de Chocolatey classique sous `C:\ProgramData\chocolatey\` et ne modifie jamais le `ChocolateyInstall` variable d'environnement à l'échelle de la machine. Cela signifie que le runtime natif et un Chocolatey classique déjà présent peuvent **coexister** sur le même appareil.
* **Résolution automatique des dépendances.** Les dépendances de package déclarées dans le `.nuspec` (comme le [RealmJoin Core Choco Extension](/fr/agent-realmjoin/recommended-packages.md#realmjoin-core-choco-extension)) sont résolues et installées automatiquement depuis vos sources configurées.
* **`choco.exe` shim.** Certains scripts de package appellent `choco.exe` directement. Pour conserver leur fonctionnement, le runtime déploie un petit shim vers `%ProgramFiles%\RealmJoin\choco-shim\choco.exe` qui redirige ces appels vers le moteur en processus au lieu de les envoyer vers Chocolatey classique. Le shim n'est pas ajouté au `PATH`; il n'est mis à disposition des scripts de package que pendant leur exécution.

## Compatibilité

Le runtime Native Choco est conçu comme un **remplacement transparent**:

* Les packages RealmJoin existants (y compris tout ce qui provient du [Store de packages](/fr/gestion-des-applications/packages/package-store.md)) s'installent et se désinstallent de la même manière.
* Les arguments / paramètres de package configurés dans le portail RealmJoin continuent de fonctionner.
* Le [RealmJoin Core Choco Extension](/fr/agent-realmjoin/recommended-packages.md#realmjoin-core-choco-extension) les cmdlets d'assistance utilisées dans les scripts de package restent disponibles.
* [ESP RealmJoin](/fr/agent-realmjoin/realmjoin-client/realmjoin-esp.md) / Autopilot sont pris en charge : sur un appareil neuf avec le runtime natif activé, `winchoco` les packages sont installés nativement pendant l'inscription, avec leurs dépendances résolues automatiquement.

{% hint style="warning" %}
Comme ce runtime est en bêta, nous recommandons de valider vos packages les plus importants sur un anneau pilote avant de le déployer à l'échelle du tenant. Veuillez signaler toute différence de comportement au support RealmJoin afin que nous puissions les corriger avant la disponibilité générale.
{% endhint %}

## Comment l'utiliser

Le runtime est sélectionné via un **paramètre**, vous pouvez donc le contrôler de manière centralisée plutôt que de toucher aux clients individuellement. Les paramètres RealmJoin se propagent en cascade, ce qui signifie que vous pouvez définir un **par défaut à l'échelle du tenant** et, si nécessaire, **le remplacer pour des groupes spécifiques** (et les objets qu'ils contiennent).

{% hint style="info" %}
Clé du paramètre : `Chocolatey.UseNativeRuntime`

Valeur du paramètre : `vrai` / `false`
{% endhint %}

Les paramètres suivants contrôlent le comportement :

<table><thead><tr><th>Paramètre</th><th width="120">Valeur par défaut</th><th>Signification</th></tr></thead><tbody><tr><td><code>Chocolatey.Enabled</code></td><td><code>false</code></td><td>RealmJoin gère les packages de type Chocolatey sur l'appareil.</td></tr><tr><td><code>Chocolatey.UseNativeRuntime</code></td><td><code>false</code></td><td>Interrupteur principal. Lorsque <code>false</code>, les installations passent encore par le <code>choco.exe</code>. Lorsque <code>vrai</code>, toutes <code>winchoco</code> les installations passent par le runtime natif en processus.</td></tr><tr><td><code>Chocolatey.DisableShim</code></td><td><code>false</code></td><td>Pertinent uniquement lorsque <code>UseNativeRuntime = true</code>. Lorsque <code>vrai</code>, tout script de package qui appelle un <code>choco.exe</code> échoue explicitement au lieu d'être redirigé via le shim — utile pour mettre en évidence les scripts qui font encore appel à un binaire externe.</td></tr></tbody></table>

{% stepper %}
{% step %}

### Activez-le d'abord pour un groupe pilote

Ouvrez les paramètres d'un **groupe** qui contient un petit ensemble d'appareils pilotes et définissez `Chocolatey.UseNativeRuntime` à `vrai` là. Comme les paramètres de groupe priment sur la valeur par défaut à l'échelle du tenant, seuls ces appareils basculent vers le nouveau moteur.
{% endstep %}

{% step %}

### Validez vos packages

Laissez les appareils pilotes exécuter leurs affectations et mises à niveau de package habituelles. Confirmez que les installations réussissent et vérifiez les journaux si quelque chose semble anormal (voir [Problèmes d'installation de packages](/fr/depannage-et-faq/troubleshooting/package-installation-issues.md)).
{% endstep %}

{% step %}

### Déployez-le à l'échelle du tenant

Une fois que vous êtes sûr, définissez `Chocolatey.UseNativeRuntime` à `vrai` car **par défaut à l'échelle du tenant** afin que tous les clients l'utilisent. Des groupes individuels peuvent toujours se retirer si vous devez les conserver temporairement sur le moteur classique.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
La configuration suit le même modèle paramètre du tenant / remplacement par groupe que les autres paramètres de l'agent décrits sous [Paramètres généraux](/fr/administration-et-parametres/general.md) (par exemple **Configuration du client** et **Configuration LAPS** paramètres du Tenant).
{% endhint %}

## Quelle est la valeur par défaut

Le runtime Native Choco est **désactivé par défaut** (`Chocolatey.UseNativeRuntime = false`). Les clients continuent d'utiliser le moteur Chocolatey 0.10.3 classique intégré jusqu'à ce qu'un administrateur active le runtime natif — soit à l'échelle du tenant, soit pour un groupe spécifique. Cela vous permet d'adopter le nouveau runtime à votre rythme et de le revenir en arrière tout aussi facilement pendant que la fonctionnalité est en bêta.

## Migration des appareils existants

Le runtime natif et Chocolatey classique **coexister** sur un appareil aussi longtemps que nécessaire. Lorsque vous activez le runtime natif sur un appareil qui possède déjà des packages installés avec Chocolatey classique :

* Les packages existants gérés par RealmJoin continuent de fonctionner et ne sont pas **renverrait pas** réinstallés simplement parce que le runtime a changé — leur état installé est conservé lors de la bascule, donc il n'y a pas de vague de réinstallations.
* Les nouvelles installations et mises à niveau passent par le runtime natif ; l'installation classique reste sur le disque, intacte, jusqu'à ce qu'elle soit explicitement supprimée.

{% hint style="info" %}
La suppression de Chocolatey classique à l'échelle du parc est prévue comme une étape distincte et orchestrée. D'ici là, le runtime natif peut coexister sans problème avec une installation classique résiduelle, donc il n'y a pas de date limite stricte pour la nettoyer.
{% endhint %}

Pour un appareil individuel (par exemple lors du support ou de la QA), un administrateur peut faire quitter Chocolatey classique à une machine avec la commande du shim `migrer` à partir d'un **élevé** shell :

{% code overflow="wrap" %}

```powershell
# Prévisualiser ce qui se passerait, sans effectuer de modifications
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --dry-run

# Réinstaller les packages avec état via le runtime natif, puis supprimer le classique
& "C:\Program Files\RealmJoin\choco-shim\choco.exe" migrate --yes
```

{% endcode %}

{% hint style="warning" %}
`choco migrate` est un **outil d'administration pour un seul appareil** (support, dev/QA, nettoyage ponctuel). Ce n'est pas **renverrait pas** le mécanisme permettant de déployer le changement sur un parc — utilisez pour cela les paramètres du tenant/groupe.
{% endhint %}

## Journaux et dépannage

Les installations du runtime natif écrivent un journal par package dans :

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

(conservé à 10 entrées les plus récentes par package). Ceci est distinct du `C:\ProgramData\chocolatey\logs\`. Lors de la collecte des journaux pour une demande de support, incluez le `C:\ProgramData\RealmJoin\` dossier comme décrit dans [Problèmes d'installation de packages](/fr/depannage-et-faq/troubleshooting/package-installation-issues.md).

### Référence des fichiers et des chemins

| Path                                              | Rôle                                                      |
| ------------------------------------------------- | --------------------------------------------------------- |
| `C:\ProgramData\RealmJoin\choco\lib\<id>`         | Racine d'installation des packages du runtime natif.      |
| `C:\ProgramData\RealmJoin\choco\extensions\<id>`  | Modules d'assistance PowerShell importés automatiquement. |
| `C:\ProgramData\RealmJoin\choco\logs\<id>`        | Journaux par installation (10 derniers par package).      |
| `C:\Program Files\RealmJoin\choco-shim\choco.exe` | Le `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/fr/agent-realmjoin/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.
