# KB - Windows - Autoriser un utilisateur à redémarrer le service

<p class="callout info">Applicable à : windows 10 et supérieur, windows 2012 et supérieur</p>

### <span style="text-decoration: underline;">Besoin</span>

Un utilisateur est gestionnaire du service applicatif et doit pouvoir relancer le service au besoin.

Cependant, il ne faut pas lui donner de droits d'administration.

---

### <span style="text-decoration: underline;">Solution</span>

<details id="bkmrk-solution-cmd-lancer-"><summary>Solution CMD</summary>

lancer un CMD en tant qu'administrateur.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nefimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nefimage-png.png)

<p class="callout info">***Info*** : la commande va réécrire les permission en remplaçant l'existant. il faut donc d'abord récupérer les droits existants afin de ne pas les perdre.</p>

Voir les droits existants avec la commande :

```bash
sc sdshow <nomDeService>.exe
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TrAimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TrAimage-png.png)

Copier le résultat, récupérer également le SID de l'utilisateur pour lequel rajouter les droits.

Puis créer la chaîne SDDL en se basant sur les informations fournies au format : (&lt;action&gt;;;&lt;droits&gt;;;;&lt;SID&gt;)

*exemple : on veux ajouter à l'utilisateur x les droits de voir le status du service et de le stopper / démarrer.*

- *(A;;LCRPWPCR;;;&lt;sid de x&gt;)*

*ce qui donne la chaine complète suivante :*

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/47Eimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/47Eimage-png.png)

Appliquer les nouvelles autorisation avec la commande :

```bash
sc sdset <NomDeService> "<chaine d'autorisations"
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/o72image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/o72image-png.png)

</details><details id="bkmrk-solution-powershell-"><summary>Solution Powershell</summary>

<p class="callout danger">Prérequis : Powershell 6 ou plus.</p>

Lancer Powershell en tant qu'administrateur.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ibjimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/ibjimage-png.png)

<p class="callout info">***Info*** : la commande va réécrire les permission en remplaçant l'existant. il faut donc d'abord récupérer les droits existants afin de ne pas les perdre.</p>

Voir les droits existants avec la commande :

```bash
sc sdshow <nomDeService>.exe
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TrAimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/TrAimage-png.png)

Copier le résultat, récupérer également le SID de l'utilisateur pour lequel rajouter les droits.

Puis créer la chaîne SDDL en se basant sur les informations fournies au format : (&lt;action&gt;;;&lt;droits&gt;;;;&lt;SID&gt;)

*exemple : on veux ajouter à l'utilisateur x les droits de voir le status du service et de le stopper / démarrer.*

- *(A;;LCRPWPCR;;;&lt;sid de x&gt;)*

*ce qui donne la chaine complète suivante :*

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/47Eimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/47Eimage-png.png)

Appliquer les nouvelles autorisation avec la commande :

```
Set-Service -Name Spooler -SecurityDescriptorSddl "<chaîne sddl>"
```

</details>---

### <span style="text-decoration: underline;">Signification de l'encodage</span>

Les lettres avant les parenthèses **D:** and **S:**

- **D:** pour ***discretionary access control list*** (***DACL***)

- **S:** pour ***system access control list*** (***SACL***)

Voir **["Access Control Lists"](https://docs.microsoft.com/en-us/windows/win32/secauthz/access-control-lists)** pour plus d'informations (article en anglais).

  
  
La première lettre a deux valeurs possibles selon que l'on va autoriser ou interdire les actions: ***allow (A)*** or ***deny (D)***.

  
  
La chaîne de caractère qui suivra représente les autorisations sur le services :

- **CC** — SERVICE\_QUERY\_CONFIG (request service settings)

- **LC** — SERVICE\_QUERY\_STATUS (service status polling)

- **SW** — SERVICE\_ENUMERATE\_DEPENDENTS

- **LO** — SERVICE\_INTERROGATE

- **CR** — SERVICE\_USER\_DEFINED\_CONTROL

- **RC** — READ\_CONTROL

- **RP** — SERVICE\_START

- **WP** — SERVICE\_STOP

- **DT** — SERVICE\_PAUSE\_CONTINUE

Les deux derniers caractères représentent les comptes et groupes built-in de windows et peuvent être remplacé par le SID de l'utilisateur ou du groupe auquel s'appliquera la politique.

- AU --&gt; Authenticated Users

- AO --&gt; Account operators

- AN --&gt; Anonymous logon

- AU --&gt; Authenticated users

- BA --&gt; Built-in administrators

- BG --&gt; Built-in guests

- BO --&gt; Backup operators

- BU --&gt; Built-in users

- CA --&gt; Certificate server administrators

- CG --&gt; Creator group

- CO --&gt; Creator owner

- DA --&gt; Domain administrators

- DC --&gt; Domain computers

- DD --&gt; Domain controllers

- DG --&gt; Domain guests

- DU --&gt; Domain users

- EA --&gt; Enterprise administrators

- ED --&gt; Enterprise domain controllers

- WD --&gt; Everyone

- PA --&gt; Group Policy administrators

- IU --&gt; Interactively logged-on user

- LA --&gt; Local administrator

- LG --&gt; Local guest

- LS --&gt; Local service account

- SY --&gt; Local system

- NU --&gt; Network logon user

- NO --&gt; Network configuration operators

- <span class="text-strong">*NS --&gt; Network service account*</span>

- PO --&gt; Printer operators

- PS --&gt; Personal self

- PU --&gt; Power users

- RS --&gt; RAS servers group

- RD --&gt; Terminal server users

- SA --&gt; Schema administrators

- SU --&gt; Service logon user

---

### <span style="text-decoration: underline;">Sources</span>

<span style="text-decoration: underline;">[How to set a Windows Service's permissions using ServiceControl and SDDL - Advanced Installer Community](https://www.advancedinstaller.com/forums/viewtopic.php?t=49990)</span>

<span style="text-decoration: underline;">[How to Allow Non-Admin User to Start/Stop Service in Windows | Windows OS Hub](https://woshub.com/set-permissions-on-windows-service/)</span>