> 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/repository.md).

# Repository

Konfigurieren Sie den Repository-Speicher, die dateibasierte Konfiguration, Datenbankressourcen, Vorlagen und die Dateikodierung von PowerShell Universal.

PowerShell Universal speichert die Konfiguration hauptsächlich in seinem Repository. Der Standard-Repository-Ordner ist `%ProgramData%\UniversalAutomation\Repository`; ändern Sie den Speicherort in `appsettings.json`.

Das Repository enthält PowerShell-Konfigurationsskripte und XML-Dateien, die von der Admin-Konsole erstellt wurden. PowerShell Universal überwacht den Ordner auf Änderungen und lädt die betroffene Konfiguration neu. Wenn die Git-Synchronisierung aktiviert ist, wird dieser Ordner mit dem Remote-Repository synchronisiert.

Alle Konfigurations-Cmdlets sind Teil des [Universal-Moduls](https://www.powershellgallery.com/packages/Universal).

## Was im Repository gespeichert wird

Die Konfiguration wird als Klartext gespeichert, um versionskontrollfreundliche Diffs zu ermöglichen. Zu den im Repository gespeicherten Ressourcen gehören Authentifizierung, KI-Agenten und -Tools, Apps, Endpunkte, Umgebungen, Lizenzen, Anmeldeseiten, Seiten, veröffentlichte Ordner, Ratenbegrenzungen, Rollen, Zeitpläne, Skripte, Einstellungen, Tags, Trigger, Variablen und Tresore.

App-Tokens, Identitäten und Auftragsverlauf werden in der PowerShell Universal-Datenbank gespeichert.

## Das Repository bearbeiten

Bearbeiten Sie Repository-Dateien in der Admin-Konsole unter **Source Control > Files / Repository > Files**, wo Sie Ordner erstellen und Dateien im Repository-Verzeichnis bearbeiten können. Sie können Dateien auch auf der Festplatte mit einem Editor wie Visual Studio Code bearbeiten.

Wenn Sie auf der Festplatte bearbeiten, aktivieren Sie das automatische Neuladen oder lösen Sie Änderungen manuell auf. Ausstehende Änderungen sehen Sie unter **Source Control > Files / Repository > Configuration Changes**.

## Konfigurationsskripte

Konfigurationsskripte befinden sich im Verzeichnis `.universal`. Die Admin-Konsole verwaltet die generierten Teile dieser Dateien, während die Bereiche `PSUHeader` und `PSUFooter` schreibgeschützt bleiben. Verwenden Sie diese Bereiche für benutzerdefinierte Logik, generierte Ressourcen oder Klassen, die für OpenAPI-Schemas erforderlich sind.

```powershell
#region PSUHeader

1..100 | ForEach-Object {
    New-PSUEndpoint -Url "/endpoint/$_" -Endpoint { }
}

#endregion

New-PSUEndpoint -Url '/user' -Endpoint { }

#region PSUFooter
#endregion
```

| Datei                            | Zweck                                                                          |
| -------------------------------- | ------------------------------------------------------------------------------ |
| `authentication.ps1`             | Konfiguration der Formularauthentifizierung.                                   |
| `aiAgents.ps1` und `aiTools.ps1` | KI-Agenten und -Tools.                                                         |
| `branding.ps1`                   | Branding-Einstellungen.                                                        |
| `dashboards.ps1`                 | App-Registrierung und Metadaten.                                               |
| `endpoints.ps1`                  | API-Endpunktdefinitionen.                                                      |
| `environments.ps1`               | Ausführungsumgebungen.                                                         |
| `healthChecks.ps1`               | Health Checks.                                                                 |
| `initialize.ps1`                 | Wird ausgeführt, bevor die Konfigurationserkennung beginnt.                    |
| `licenses.ps1`                   | Produktlizenzkonfiguration.                                                    |
| `middleware.ps1`                 | Anpassung von HTTP-Anfragen.                                                   |
| `publishedFolders.ps1`           | Veröffentlichte Ordner.                                                        |
| `rateLimits.ps1`                 | Ratenbegrenzungen.                                                             |
| `roles.ps1`                      | Rollen.                                                                        |
| `schedules.ps1`                  | Zeitpläne.                                                                     |
| `scripts.ps1`                    | Skript-Metadaten; Skriptpfade können relativ zum Repository oder absolut sein. |
| `settings.ps1`                   | Plattformeinstellungen.                                                        |
| `tags.ps1`                       | Tags.                                                                          |
| `triggers.ps1`                   | Trigger.                                                                       |
| `variables.ps1`                  | Variablen.                                                                     |
| `vaults.ps1`                     | Tresore.                                                                       |
| `workflows.ps1`                  | Workflow-Definitionen, wenn Workflows die Repository-Persistenz verwenden.     |

## Vorlagen

Verwenden Sie den Ordner `Templates`, um Vorlagen für häufig erstellte Ressourcen in der Admin-Konsole bereitzustellen. PowerShell-Skripte in den folgenden Ordnern erscheinen als Vorlagen:

* `Templates\App`
* `Templates\AppPage`
* `Templates\Endpoint`
* `Templates\Script`

## .psuignore

Verwenden Sie `.psuignore`, um Dateien und Pfade von der Konfigurations-Dateisystemüberwachung auszuschließen. Dies ist nützlich für Protokolle oder andere Dateien, die neben der Konfiguration gespeichert werden. Fügen Sie einen regulären Ausdruck pro Zeile hinzu; übereinstimmende Pfade werden ignoriert.

```
logs.*
.git.*
```

## Dateikodierung

Konfigurieren Sie die Dateikodierung unter **Settings gear > General**. Der Standard ist UTF-8 mit Byte-Order-Mark (`utf-8-bom`). Wählen Sie `utf-8`, um das Byte-Order-Mark auszulassen.

PowerShell Universal unterstützt die von [Encoding.GetEncodings](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-10.0) zurückgegebenen Kodierungen, einschließlich `utf-32`, `utf-32-bom`, `utf-8`, `utf-8-bom` und `windows-1250`. Fügen Sie `-bom` zu einem Kodierungsnamen hinzu, um ein Byte-Order-Mark einzuschließen.

## Datenbankressourcen

Sie können ausgewählte Ressourcen in der Datenbank anstatt im Konfigurations-Repository speichern. In der Datenbank gespeicherte Ressourcen sind sofort auf allen verbundenen Computern in einem PowerShell Universal-Cluster verfügbar.

> \[!WARNING] Wenn eine Ressource für die Datenbankpersistenz konfiguriert ist, ignoriert PowerShell Universal deren Repository-Konfigurationsdatei.

Apps, Endpunkte mit Pfaden, Skripte und Module können die Datenbankpersistenz nicht verwenden.

Konfigurieren Sie eine Ressource, indem Sie `Data:Persistence:<ResourceType>` in `appsettings.json` auf `Database` setzen und PowerShell Universal anschließend neu starten. Beispielsweise werden dadurch Workflows in der Datenbank anstatt in `.universal\workflows.ps1` gespeichert:

```json
{
  "Data": {
    "Persistence": {
      "Workflow": "Database"
    }
  }
}
```

Setzen Sie die entsprechende Umgebungsvariable, bevor Sie PowerShell Universal starten:

```
Data__Persistence__Workflow=Database
```

Nach dem Neustart werden neue und bearbeitete Workflows in der Datenbank gespeichert und über Neustarts hinweg beibehalten. Workflow-Parameter folgen der Persistenzeinstellung des übergeordneten Workflows und werden daher ebenfalls in der Datenbank gespeichert. Das gleiche Einstellungsmuster gilt für jede unterstützte Datenbankressource.

Beispielsweise werden mit dem Folgenden Zeitpläne und Zeitplanparameter in der Datenbank gespeichert:

```json
{
  "Data": {
    "Persistence": {
      "Schedule": "Database",
      "ScheduleParameter": "Database"
    }
  }
}
```


---

# 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.devolutions.net/powershell-universal/de/config/repository.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.
