> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/fr/config/running-as-a-service-account.md).

# Exécution en tant que compte de service

Configurez PowerShell Universal pour qu'il s'exécute sous un compte de service Windows, distinguez les permissions d'hébergement et Run As, et effectuez la résolution de problèmes des échecs d'ouvertu

### Compte de service d'application

PowerShell Universal peut s'exécuter sous un compte de service Windows dédié plutôt que sous Système local. Les tâches d'application locales, les tâches et les applis utilisent l'identité d'hébergement par défaut. Une [variable secrète PSCredential](/powershell-universal/fr/plateforme/variables.md) configurée comme **Run As** démarre un processus distinct sous le compte sélectionné.

Distinguez ces deux identités lors de l'attribution des permissions :

* **Compte d'hébergement** : le compte qui exécute le service Windows de PowerShell Universal, ou l'identité du pool d'applications IIS. Il authentifie le compte Run As et crée le processus enfant.
* **Compte Run As** : le compte stocké dans le secret d'identifiant sélectionné. Ses droits d'ouverture de session et son accès aux fichiers et aux ressources réseau déterminent ce que le processus enfant peut faire.

Pour le chemin de lancement Windows Run As non interactif actuel, vérifiez les droits suivants sur le **compte d'hébergement** :

| Droit                                                                        | S'applique à                                                                                     |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Ouvrir une session en tant que service (`SeServiceLogonRight`)               | Exécution de PowerShell Universal en tant que service Windows.                                   |
| Ajuster les quotas de mémoire pour un processus (`SeIncreaseQuotaPrivilege`) | Création d'un processus enfant au moyen de `CreateProcessAsUser`.                                |
| Remplacer un jeton de niveau processus (`SeAssignPrimaryTokenPrivilege`)     | Attribution du jeton du compte Run As au processus enfant lorsque `CreateProcessAsUser` l'exige. |

{% hint style="warning" %}
L'appartenance au groupe **Administrateurs** local ne supprime pas ces exigences. Les administrateurs disposent normalement de **Ajuster les quotas de mémoire pour un processus**, mais n'ont pas **Remplacer un jeton de niveau processus** par défaut. Vérifiez les droits effectifs du compte qui exécute réellement PowerShell Universal.
{% endhint %}

Pour l'hébergement IIS, vérifiez les privilèges de lancement de processus sur l'**identité du pool d'applications**, et pas seulement sur un compte de service Windows. Configurez les droits d'ouverture de session de l'identité d'hébergement selon la configuration d'hébergement IIS.

Les privilèges supplémentaires de lancement de processus sont requis pour le chemin de compte de remplacement non interactif, et pas seulement parce que PowerShell Universal s'exécute sous un compte dédié. Si une tâche ou une appli doit s'exécuter sous l'identité d'hébergement, laissez **Run As** non défini; une autre ouverture de session n'est pas nécessaire. L'environnement Integrated ne prend pas en charge les identifiants Run As de remplacement. Voir [Environnements](/powershell-universal/fr/config/environments.md).

Les vérifications d'intégrité exigent l'appartenance aux groupes suivants pour recueillir des informations sur le système PowerShell Universal :

* Utilisateurs de l'Analyseur de performances
* Utilisateurs du journal de performances

### Exigences Run As des scripts

Ces exigences s'appliquent aussi aux processus d'appli Windows et d'API démarrés par le serveur PowerShell Universal avec des identifiants de remplacement.

Pour un identifiant standard composé d'un nom d'utilisateur et d'un mot de passe, PowerShell Universal tente normalement d'abord une **ouverture de session interactive** au moyen de la création de processus .NET (`CreateProcessWithLogonW`). Ce chemin exige **Autoriser l'ouverture de session locale** (`SeInteractiveLogonRight`) sur le compte Run As et n'exige pas que le compte d'hébergement détienne les privilèges `CreateProcessAsUser` supplémentaires.

Si la première tentative échoue, PowerShell Universal revient à l'**ouverture de session en lot** (`LogonUser` avec le type d'ouverture de session 4), suivie de `CreateProcessAsUser`. Ce chemin exige :

* **Ouvrir une session en tant que tâche** (`SeBatchLogonRight`) sur le **compte Run As**.
* Les privilèges de lancement de processus décrits ci-dessus sur le **compte d'hébergement**.

PowerShell Universal met en cache le chemin de lancement sélectionné pendant cinq minutes, de sorte que les lancements répétés peuvent ne pas répéter les deux tentatives. Une validation réussie de l'identifiant ne prouve pas que le compte d'hébergement peut créer un processus sous ces identifiants.

{% hint style="info" %}
Une ouverture de session interactive désigne ici un type d'authentification Windows. Cela ne signifie pas que PowerShell Universal ouvre un bureau interactif ou exige une session RDP.
{% endhint %}

{% hint style="warning" %}
**Refuser l'ouverture de session locale** remplace **Autoriser l'ouverture de session locale**, y compris les droits hérités par l'appartenance à un groupe. Ce refus bloque la tentative interactive, mais ne bloque pas en soi l'ouverture de session en lot. **Refuser l'ouverture de session en tant que tâche** et **Refuser l'ouverture de session en tant que service** remplacent indépendamment les droits d'ouverture de session correspondants. Ne retirez pas une stratégie de refus organisationnelle seulement pour faire réussir le chemin interactif; configurez plutôt un lancement non interactif approuvé.
{% endhint %}

#### Comptes de service gérés de groupe

Pour un identifiant Run As gMSA, saisissez le compte sous la forme `DOMAIN\account$` et sélectionnez **Password Not Required** lors de la création de la variable secrète. Voir [Comptes de service gérés de groupe](/powershell-universal/fr/plateforme/variables.md#group-managed-service-accounts) pour la configuration.

PowerShell Universal omet la tentative interactive normale pour cet identifiant et utilise une **ouverture de session en tant que service** (`LogonUser` avec le type d'ouverture de session 5). Le gMSA cible a donc besoin de **Ouvrir une session en tant que service**, sans stratégie effective **Refuser l'ouverture de session en tant que service**. Le compte d'hébergement a toujours besoin des privilèges requis pour créer le processus enfant.

Le gMSA cible doit être configuré pour être utilisé sur l'hôte PowerShell Universal, y compris les permissions appropriées de récupération du mot de passe géré. Vérifiez `Test-ADServiceAccount` sur cet hôte. Un résultat réussi vérifie la configuration du gMSA; il n'exerce pas la séquence complète d'ouverture de session et de lancement de processus de PowerShell Universal.

Exécuter PowerShell Universal lui-même en tant que gMSA est différent du lancement d'un processus enfant en tant que gMSA. Ne supposez pas qu'un service gMSA ou un pool d'applications fonctionnel peut lancer un autre gMSA seulement parce que le service démarre ou que `Test-ADServiceAccount` réussit. Validez l'opération Run As sous l'identité d'hébergement réelle. Si le processus enfant doit utiliser la même identité que l'hôte, laissez **Run As** non défini.

#### Profils utilisateur et accès aux fichiers

Le compte Run As a besoin d'accéder à l'exécutable, au dépôt de configuration, au répertoire de travail et à toute autre ressource utilisée par la tâche ou l'appli. Configurez l'accès aux fichiers et au réseau séparément des droits d'ouverture de session.

Le lanceur non interactif peut aussi charger le profil Windows du compte Run As. Windows exige que l'appelant de `LoadUserProfile` soit un administrateur ou Système local et qu'il détienne **Sauvegarder des fichiers et des répertoires** (`SeBackupPrivilege`) et **Restaurer des fichiers et des répertoires** (`SeRestorePrivilege`). Le lanceur actuel ignore le chargement explicite du profil lorsque l'hôte n'est ni un administrateur ni Système local. Tenez-en compte lorsque le script ou l'appli dépend de `HKEY_CURRENT_USER` ou d'autres données de profil. Un échec de chargement de profil est distinct d'un échec de privilège `CreateProcessAsUser`.

### Attribution des droits utilisateur

1. Ouvrez **Stratégie de sécurité locale** (`secpol.msc`) sur l'hôte PowerShell Universal.
2. Accédez à **Stratégies locales > Attribution des droits utilisateur**.
3. Attribuez seulement les droits requis au compte d'hébergement ou Run As approprié, ou à un groupe à portée restreinte. Vérifiez l'appartenance effective au groupe et les stratégies de refus correspondantes.
4. Si une stratégie de groupe de domaine contrôle le paramètre, demandez la modification dans le GPO qui régit ce paramètre. Les modifications locales peuvent être écrasées ou indisponibles.
5. Redémarrez le service PowerShell Universal, ou recyclez le pool d'applications IIS, après avoir modifié les droits du compte d'hébergement afin qu'il reçoive un nouveau jeton d'ouverture de session.

{% hint style="warning" %}
Ces droits permettent des opérations Windows sensibles. Faites réviser les modifications selon la stratégie de sécurité de votre organisation. Le compte Système local peut satisfaire les exigences de lancement, mais passer à Système local élargit les privilèges du compte d'hébergement et ne constitue pas un correctif de moindre privilège.
{% endhint %}

### Configuration d'un service PowerShell Universal pour qu'il s'exécute sous le compte

Après avoir configuré le compte et les droits requis, ouvrez **Services** (`services.msc`). Trouvez **PowerShell Universal**, ouvrez **Propriétés**, et utilisez l'onglet **Ouverture de session** pour configurer le compte d'hébergement. Redémarrez le service et vérifiez une tâche ou une appli qui utilise l'identité d'exécution prévue.

### Résolution de problèmes du démarrage Run As

Lisez le journal PowerShell Universal et, lorsque l'audit des ouvertures de session est activé, le journal **Sécurité** de Windows. Identifiez l'étape qui a échoué avant de modifier les permissions du compte.

| Échec                                                                                                                                          | Élément à vérifier                                                                                                                                                                                                                                                                                                                             |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Événement de sécurité 4625, type d'ouverture de session 2, état `0xC000015B`; ou erreur Windows 1385 durant l'ouverture de session interactive | Le compte Run As ne peut pas effectuer l'ouverture de session interactive demandée. Vérifiez **Autoriser l'ouverture de session locale** et **Refuser l'ouverture de session locale**. Si l'ouverture de session interactive est refusée volontairement, examinez le résultat du lancement en lot suivant au lieu d'assouplir cette stratégie. |
| Erreur Windows 1385 durant l'ouverture de session en lot (type 4) ou l'ouverture de session en tant que service (type 5)                       | Vérifiez le droit du compte Run As pour ce type d'ouverture de session précis et la stratégie de refus correspondante.                                                                                                                                                                                                                         |
| `A required privilege is not held by the client` (erreur Windows 1314) durant `CreateProcessAsUser`                                            | Vérifiez **Remplacer un jeton de niveau processus** et **Ajuster les quotas de mémoire pour un processus** sur le compte d'hébergement réel, même s'il s'agit d'un administrateur local.                                                                                                                                                       |
| Erreur Windows 1314 durant `LoadUserProfile`                                                                                                   | Vérifiez les privilèges de chargement de profil du compte d'hébergement et les exigences de chargement de profil de Windows, plutôt que seulement le privilège de jeton de processus.                                                                                                                                                          |
| Erreur Windows 1326 durant l'ouverture de session                                                                                              | Vérifiez le nom du compte, le domaine et l'identifiant. Pour un gMSA, vérifiez aussi **Password Not Required**, la configuration de l'hôte, les permissions de récupération du mot de passe géré et l'identité d'hébergement. L'erreur 1326 à elle seule n'établit pas qu'un mot de passe stocké est incorrect.                                |
| Le processus démarre, mais la tâche ou l'appli signale un accès refusé vers un chemin AppData, temporaire ou de dépôt                          | Inspectez le chemin et l'identité d'exécution. Les privilèges de lancement ne corrigent pas un problème de chemin de répertoire de travail ou de profil utilisateur. N'accordez pas un large accès au profil privé du compte d'hébergement pour remplacer l'utilisation des chemins du compte prévu.                                           |

Recueillez la version de PowerShell Universal, le mode et l'identité d'hébergement, si l'identifiant est un gMSA, l'étape de lancement, le code d'erreur natif et le type ou l'état d'ouverture de session de l'événement 4625 pertinent lorsque vous demandez de l'assistance. N'incluez pas de mots de passe ni de valeurs secrètes.

### Références Windows

* [CreateProcessWithLogonW](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw) : exigences d'ouverture de session interactive et restriction de Système local.
* [CreateProcessAsUser](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessasuserw) : privilèges de jeton de processus et de quota de mémoire.
* [LogonUser](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-logonuserw) et [droits du compte](https://learn.microsoft.com/en-us/windows/win32/secauthz/account-rights-constants) : ouverture de session en lot ou en tant que service, et priorité des stratégies de refus.
* [LoadUserProfile](https://learn.microsoft.com/en-us/windows/win32/api/userenv/nf-userenv-loaduserprofilew) : exigences de chargement de profil.
* [Remplacer un jeton de niveau processus](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/replace-a-process-level-token) : attributions par défaut et considérations de sécurité.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/powershell-universal/fr/config/running-as-a-service-account.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
