> 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/de/config/running-as-a-service-account.md).

# Ausführung als Dienstkonto

Konfigurieren Sie PowerShell Universal für die Ausführung unter einem Windows-Dienstkonto, unterscheiden Sie Hosting- und Run As-Berechtigungen, und beheben Sie Fehler bei der Windows-Anmeldung und be

### Anwendungs-Dienstkonto

PowerShell Universal kann unter einem dedizierten Windows-Dienstkonto statt unter dem lokalen Systemkonto ausgeführt werden. Lokale Anwendungsaufgaben, Jobs und Apps verwenden standardmäßig die Hostingidentität. Eine als **Run As** konfigurierte [geheime PSCredential-Variable](/powershell-universal/de/plattform/variables.md) startet einen separaten Prozess unter dem ausgewählten Konto.

Unterscheiden Sie diese beiden Identitäten, wenn Sie Berechtigungen zuweisen:

* **Hostingkonto**: Das Konto, unter dem der Windows-Dienst von PowerShell Universal ausgeführt wird, oder die Identität des IIS-Anwendungspools. Es authentifiziert das Run As-Konto und erstellt den untergeordneten Prozess.
* **Run As-Konto**: Das im ausgewählten Anmeldeinformationsgeheimnis gespeicherte Konto. Seine Anmelderechte sowie der Zugriff auf Dateien und Netzwerkressourcen bestimmen, was der untergeordnete Prozess tun kann.

Prüfen Sie für den aktuellen nicht interaktiven Windows-Run-As-Startpfad die folgenden Rechte des **Hostingkontos**:

| Recht                                                                            | Gilt für                                                                                                             |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Anmelden als Dienst (`SeServiceLogonRight`)                                      | Ausführung von PowerShell Universal als Windows-Dienst.                                                              |
| Anpassen von Speicherkontingenten für einen Prozess (`SeIncreaseQuotaPrivilege`) | Erstellen eines untergeordneten Prozesses über `CreateProcessAsUser`.                                                |
| Ersetzen eines Tokens auf Prozessebene (`SeAssignPrimaryTokenPrivilege`)         | Zuweisen des Tokens des Run As-Kontos an den untergeordneten Prozess, sofern von `CreateProcessAsUser` erforderlich. |

{% hint style="warning" %}
Die Mitgliedschaft in der lokalen Gruppe **Administratoren** hebt diese Anforderungen nicht auf. Administratoren verfügen normalerweise über **Anpassen von Speicherkontingenten für einen Prozess**, jedoch standardmäßig nicht über **Ersetzen eines Tokens auf Prozessebene**. Prüfen Sie die effektiven Rechte des Kontos, unter dem PowerShell Universal tatsächlich ausgeführt wird.
{% endhint %}

Prüfen Sie beim IIS-Hosting die Privilegien zum Starten von Prozessen für die **Identität des Anwendungspools**, nicht nur für ein Windows-Dienstkonto. Konfigurieren Sie die Anmelderechte der Hostingidentität entsprechend der IIS-Hostingkonfiguration.

Die zusätzlichen Privilegien zum Starten von Prozessen sind für den nicht interaktiven Pfad mit einem anderen Konto erforderlich, nicht nur deshalb, weil PowerShell Universal unter einem dedizierten Konto ausgeführt wird. Wenn ein Job oder eine App unter der Hostingidentität ausgeführt werden soll, lassen Sie **Run As** ungesetzt; eine weitere Anmeldung ist nicht erforderlich. Die Integrated-Umgebung unterstützt keine alternativen Run As-Anmeldeinformationen. Siehe [Umgebungen](/powershell-universal/de/config/environments.md).

Health Checks erfordern die folgende Gruppenmitgliedschaft, um Informationen über das PowerShell Universal-System zu sammeln:

* Leistungsüberwachungsbenutzer
* Leistungsprotokollbenutzer

### Run-As-Anforderungen für Skripte

Diese Anforderungen gelten auch für Windows-App- und API-Prozesse, die der PowerShell Universal-Server mit alternativen Anmeldeinformationen startet.

Bei einer standardmäßigen Anmeldeinformation aus Benutzername und Passwort versucht PowerShell Universal normalerweise zuerst eine **interaktive Anmeldung** über die .NET-Prozesserstellung (`CreateProcessWithLogonW`). Dieser Pfad erfordert **Lokal anmelden zulassen** (`SeInteractiveLogonRight`) für das Run As-Konto und setzt nicht voraus, dass das Hostingkonto die zusätzlichen `CreateProcessAsUser`-Privilegien besitzt.

Schlägt der erste Versuch fehl, greift PowerShell Universal auf die **Stapelanmeldung** zurück (`LogonUser` mit Anmeldetyp 4), gefolgt von `CreateProcessAsUser`. Dieser Pfad erfordert:

* **Anmelden als Stapelverarbeitungsauftrag** (`SeBatchLogonRight`) für das **Run As-Konto**.
* Die oben beschriebenen Privilegien zum Starten von Prozessen für das **Hostingkonto**.

PowerShell Universal speichert den ausgewählten Startpfad fünf Minuten im Cache, sodass wiederholte Starts möglicherweise nicht beide Versuche wiederholen. Eine erfolgreiche Überprüfung der Anmeldeinformationen beweist nicht, dass das Hostingkonto unter diesen Anmeldeinformationen einen Prozess erstellen kann.

{% hint style="info" %}
Eine interaktive Anmeldung ist hier ein Windows-Authentifizierungstyp. Sie bedeutet nicht, dass PowerShell Universal einen interaktiven Desktop öffnet oder eine RDP-Sitzung erfordert.
{% endhint %}

{% hint style="warning" %}
**Lokal anmelden verweigern** setzt **Lokal anmelden zulassen** außer Kraft, einschließlich über die Gruppenmitgliedschaft geerbter Rechte. Es blockiert den interaktiven Versuch, blockiert aber nicht selbst die Stapelanmeldung. **Anmelden als Stapelverarbeitungsauftrag verweigern** und **Anmelden als Dienst verweigern** setzen unabhängig die entsprechenden Anmelderechte außer Kraft. Entfernen Sie eine organisationsweite Verweigerungsrichtlinie nicht nur, damit der interaktive Pfad gelingt; konfigurieren Sie stattdessen einen genehmigten nicht interaktiven Start.
{% endhint %}

#### Gruppenverwaltete Dienstkonten

Geben Sie für eine gMSA-Run-As-Anmeldeinformation das Konto als `DOMAIN\account$` ein und wählen Sie **Password Not Required**, wenn Sie die geheime Variable erstellen. Siehe [Gruppenverwaltete Dienstkonten](/powershell-universal/de/plattform/variables.md#group-managed-service-accounts) für die Einrichtung.

PowerShell Universal überspringt den normalen interaktiven Versuch für diese Anmeldeinformation und verwendet eine **Dienstanmeldung** (`LogonUser` mit Anmeldetyp 5). Das Ziel-gMSA benötigt daher **Anmelden als Dienst**, ohne wirksame Richtlinie **Anmelden als Dienst verweigern**. Das Hostingkonto benötigt weiterhin die Privilegien, die zum Erstellen des untergeordneten Prozesses erforderlich sind.

Das Ziel-gMSA muss für die Verwendung auf dem PowerShell Universal-Host konfiguriert sein, einschließlich der geeigneten Berechtigungen zum Abrufen des verwalteten Passworts. Prüfen Sie `Test-ADServiceAccount` auf diesem Host. Ein erfolgreiches Ergebnis prüft die gMSA-Konfiguration; es durchläuft nicht die vollständige Anmelde- und Prozessstartsequenz von PowerShell Universal.

PowerShell Universal selbst als gMSA auszuführen, unterscheidet sich vom Starten eines untergeordneten Prozesses als gMSA. Gehen Sie nicht davon aus, dass ein funktionierender gMSA-Dienst oder Anwendungspool ein anderes gMSA starten kann, nur weil der Dienst startet oder `Test-ADServiceAccount` erfolgreich ist. Überprüfen Sie den Run-As-Vorgang unter der tatsächlichen Hostingidentität. Wenn der untergeordnete Prozess dieselbe Identität wie der Host verwenden soll, lassen Sie **Run As** ungesetzt.

#### Benutzerprofile und Dateizugriff

Das Run As-Konto benötigt Zugriff auf die ausführbare Programmdatei, das Konfigurationsrepository, das Arbeitsverzeichnis und alle anderen Ressourcen, die der Job oder die App verwendet. Konfigurieren Sie Datei- und Netzwerkzugriff getrennt von den Anmelderechten.

Der nicht interaktive Starter kann auch das Windows-Profil des Run As-Kontos laden. Windows verlangt, dass der Aufrufer von `LoadUserProfile` ein Administrator oder Lokales System ist und **Sichern von Dateien und Verzeichnissen** (`SeBackupPrivilege`) sowie **Wiederherstellen von Dateien und Verzeichnissen** (`SeRestorePrivilege`) besitzt. Der aktuelle Starter überspringt das explizite Laden des Profils, wenn der Host weder Administrator noch Lokales System ist. Berücksichtigen Sie dies, wenn das Skript oder die App von `HKEY_CURRENT_USER` oder anderen Profildaten abhängt. Ein Fehler beim Laden des Profils ist von einem `CreateProcessAsUser`-Privilegfehler zu unterscheiden.

### Zuweisen von Benutzerrechten

1. Öffnen Sie **Lokale Sicherheitsrichtlinie** (`secpol.msc`) auf dem PowerShell Universal-Host.
2. Wechseln Sie zu **Lokale Richtlinien > Zuweisen von Benutzerrechten**.
3. Weisen Sie nur die erforderlichen Rechte dem zuständigen Hosting- oder Run As-Konto oder einer eng gefassten Gruppe zu. Prüfen Sie die effektive Gruppenmitgliedschaft und die passenden Verweigerungsrichtlinien.
4. Wenn eine Domänengruppenrichtlinie die Einstellung steuert, fordern Sie die Änderung in der maßgeblichen GPO an. Lokale Änderungen können überschrieben werden oder nicht verfügbar sein.
5. Starten Sie den PowerShell Universal-Dienst neu, oder führen Sie ein Recycling des IIS-Anwendungspools durch, nachdem Sie die Rechte des Hostingkontos geändert haben, damit es ein neues Anmeldetoken erhält.

{% hint style="warning" %}
Diese Rechte erlauben sensible Windows-Vorgänge. Lassen Sie die Änderungen gemäß den Sicherheitsrichtlinien Ihrer Organisation prüfen. Lokales System kann die Startanforderungen erfüllen, aber ein Wechsel zu Lokales System erweitert die Privilegien des Hostingkontos und ist keine Abhilfe nach dem Prinzip der geringsten Privilegien.
{% endhint %}

### Konfigurieren eines PowerShell Universal-Dienstes für die Ausführung unter dem Konto

Nachdem Sie das Konto und die erforderlichen Rechte konfiguriert haben, öffnen Sie **Dienste** (`services.msc`). Suchen Sie **PowerShell Universal**, öffnen Sie **Eigenschaften**, und verwenden Sie die Registerkarte **Anmelden**, um das Hostingkonto zu konfigurieren. Starten Sie den Dienst neu, und prüfen Sie einen Job oder eine App mit der vorgesehenen Ausführungsidentität.

### Fehlerbehebung beim Run-As-Start

Lesen Sie das PowerShell Universal-Protokoll und, wenn die Anmeldeüberwachung aktiviert ist, das Windows-Protokoll **Sicherheit**. Ermitteln Sie, welche Phase fehlgeschlagen ist, bevor Sie die Kontoberechtigungen ändern.

| Fehler                                                                                                                              | Was zu prüfen ist                                                                                                                                                                                                                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Sicherheitsereignis 4625, Anmeldetyp 2, Status `0xC000015B`; oder Windows-Fehler 1385 bei der interaktiven Anmeldung                | Das Run As-Konto kann die angeforderte interaktive Anmeldung nicht ausführen. Prüfen Sie **Lokal anmelden zulassen** und **Lokal anmelden verweigern**. Wenn die interaktive Anmeldung absichtlich verweigert wird, prüfen Sie das nachfolgende Ergebnis des Stapelstarts, anstatt diese Richtlinie zu lockern.          |
| Windows-Fehler 1385 bei der Stapelanmeldung (Typ 4) oder der Dienstanmeldung (Typ 5)                                                | Prüfen Sie das Recht des Run As-Kontos für diesen bestimmten Anmeldetyp und die entsprechende Verweigerungsrichtlinie.                                                                                                                                                                                                   |
| `A required privilege is not held by the client` (Windows-Fehler 1314) während `CreateProcessAsUser`                                | Prüfen Sie **Ersetzen eines Tokens auf Prozessebene** und **Anpassen von Speicherkontingenten für einen Prozess** für das tatsächliche Hostingkonto, auch wenn es ein lokaler Administrator ist.                                                                                                                         |
| Windows-Fehler 1314 während `LoadUserProfile`                                                                                       | Prüfen Sie die Privilegien des Hostingkontos zum Laden von Profilen und die Windows-Anforderungen zum Laden von Profilen, nicht nur das Privileg für das Prozesstoken.                                                                                                                                                   |
| Windows-Fehler 1326 bei der Anmeldung                                                                                               | Prüfen Sie den Kontonamen, die Domäne und die Anmeldeinformationen. Prüfen Sie bei einem gMSA auch **Password Not Required**, die Hostkonfiguration, die Berechtigungen zum Abrufen des verwalteten Passworts und die Hostingidentität. Der Fehler 1326 allein belegt nicht, dass ein gespeichertes Passwort falsch ist. |
| Der Prozess startet, aber der Job oder die App meldet einen verweigerten Zugriff auf einen AppData-, temporären oder Repositorypfad | Prüfen Sie den Pfad und die Ausführungsidentität. Startprivilegien beheben kein Problem mit dem Arbeitsverzeichnis oder einem Benutzerprofilpfad. Gewähren Sie keinen breiten Zugriff auf das private Profil des Hostingkontos als Ersatz für die Pfade des vorgesehenen Kontos.                                         |

Erfassen Sie die PowerShell Universal-Version, den Hostingmodus und die Hostingidentität, ob die Anmeldeinformation ein gMSA ist, die Startphase, den nativen Fehlercode und den relevanten Anmeldetyp bzw. Status des Ereignisses 4625, wenn Sie Unterstützung anfordern. Fügen Sie keine Passwörter oder geheimen Werte bei.

### Windows-Referenzen

* [CreateProcessWithLogonW](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw): Anforderungen für die interaktive Anmeldung und die Einschränkung für Lokales System.
* [CreateProcessAsUser](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessasuserw): Privilegien für Prozesstoken und Speicherkontingent.
* [LogonUser](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-logonuserw) und [Kontorechte](https://learn.microsoft.com/en-us/windows/win32/secauthz/account-rights-constants): Stapel- bzw. Dienstanmeldung und Vorrang von Verweigerungsrichtlinien.
* [LoadUserProfile](https://learn.microsoft.com/en-us/windows/win32/api/userenv/nf-userenv-loaduserprofilew): Anforderungen zum Laden von Profilen.
* [Ersetzen eines Tokens auf Prozessebene](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/replace-a-process-level-token): Standardzuweisungen und Sicherheitsüberlegungen.


---

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