> 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

Die Konfigurationsdaten für PowerShell Universal werden primär innerhalb des Repositorys gespeichert. Standardmäßig befindet sich der Repository-Ordner unter `%ProgramData%\UniversalAutomation\Repository`. Sie können den Speicherort des Repositorys anpassen, indem Sie die Datei `appsettings.json` bearbeiten.

Das Repository enthält PowerShell-Skripte und XML-Dateien, die bei der Verwendung der PowerShell Universal-Verwaltungskonsole erzeugt werden. Der Repository-Ordner wird außerdem auf Änderungen überwacht, sodass jede auf der Festplatte vorgenommene Änderung dazu führt, dass das System die Datei neu lädt und die Plattform neu konfiguriert. Bei Verwendung der Git-Integration ist der Repository-Ordner derjenige, der mit dem Git-Remote synchronisiert wird.

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

## Was im Repository gespeichert wird

Dateien im Repository werden als Klartext gespeichert, um einen einfachen Vergleich mit Quellcodeverwaltungstools zu ermöglichen.

* Authentifizierung
* KI-Agenten und Tools
* Apps
* Endpunkte
* Umgebungen
* Lizenzen
* Anmeldeseiten
* Seiten
* Veröffentlichte Ordner
* Ratenbegrenzungen
* Rollen
* Zeitpläne
* Skripte
* Einstellungen
* Tags
* Trigger
* Tresore

## Was nicht im Repository gespeichert wird

Diese Entitäten werden in der PowerShell Universal-Datenbank gespeichert.

* App-Tokens
* Identitäten
* Auftragsverlauf

## Bearbeiten des Repositorys

Sie können die Repository-Dateien direkt in der Verwaltungskonsole bearbeiten, indem Sie zu Einstellungen \ Dateien navigieren. Der Editor ermöglicht es Ihnen, Dateien und Ordner zu erstellen und jede Datei innerhalb des Repository-Verzeichnisses zu bearbeiten.

<figure><img src="/files/l4sbtP4aSN6dyb9bQgec" alt=""><figcaption></figcaption></figure>

Sie können das Repository auch direkt auf der Festplatte mit Editoren wie Visual Studio Code bearbeiten. Standardmäßig werden Dateien in `%ProgramData%\UniversalAutomation\Repository` gespeichert. Sie müssen entweder das automatische Neuladen aktivieren oder Änderungen manuell auflösen. Sie können geänderte Dateien anzeigen, indem Sie zu Einstellungen \ Dateien \ Konfigurations-Tracker navigieren.

## Konfigurationsskripte

### Authentication.ps1

{% hint style="info" %}
Gespeichert in `.universal\authentication.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration der [Formularauthentifizierung](/powershell-universal/de/sicherheit/security.md#forms-authentication) verantwortlich. Wenn die Formularauthentifizierung nicht verwendet wird, wird diese Datei ignoriert.

Sie können das Cmdlet [`Set-PSUAuthentication` ](/powershell-universal/de/powershell-befehle/set-psuauthenticationmethod.md)in dieser Datei verwenden.

### AiAgents.ps1

{% hint style="info" %}
Gespeichert in `.universal\aiAgents.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von KI-Agenten verantwortlich. Verwenden Sie das Cmdlet `New-PSUAIAgents` in dieser Datei.

### AiTools.ps1

{% hint style="info" %}
Gespeichert in `.universal\aiTools.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von KI-Tools verantwortlich. Verwenden Sie das Cmdlet `New-PSUAITool` in dieser Datei.

### Branding.ps1

{% hint style="info" %}
Gespeichert in `.universal\branding.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration der Branding-Einstellungen verantwortlich.

Sie können das Cmdlet New-PSUBranding in dieser Datei verwenden.

### Dashboards.ps1

{% hint style="info" %}
Gespeichert in `.universal\dashboards.ps1`
{% endhint %}

Dieses Skript ist für die Registrierung von PS1-Dateien als Apps innerhalb des Systems verantwortlich. Jeder Befehl enthält die Metadaten für die App, einschließlich Name, Basis-URL und Umgebung.

Sie können das Cmdlet [`New-PSUApp` ](/powershell-universal/de/powershell-befehle/new-psudashboard.md)in dieser Datei verwenden.

### Endpoints.ps1

{% hint style="info" %}
Gespeichert in `.universal\endpoints.ps1`
{% endhint %}

Dieses Skript ist für die Definition aller [API-Endpunkte](https://github.com/Devolutions/docs/tree/master/translations/de/powershell-universal/config/broken-reference/README.md) innerhalb der PowerShell Universal-Instanz verantwortlich.

Sie können das Cmdlet [`New-PSUEndpoint` ](/powershell-universal/de/powershell-befehle/new-psuendpoint.md)in dieser Datei verwenden.

### Environments.ps1

{% hint style="info" %}
Gespeichert in `.universal\environments.ps1`
{% endhint %}

Dieses Skript ist für die Definition aller Umgebungen innerhalb von PowerShell Universal verantwortlich.

Sie können das Cmdlet [`New-PSUEnvironment` ](/powershell-universal/de/powershell-befehle/new-psuenvironment.md)in dieser Datei verwenden.

### healthChecks.ps1

{% hint style="info" %}
Gespeichert in `.universal\healthChecks.ps1`
{% endhint %}

Dieses Skript ist für die Definition von Health Checks innerhalb von PowerShell Universal verantwortlich.

Sie können das Cmdlet [`New-PSUHealthCheck` ](/powershell-universal/de/powershell-befehle/new-psuhealthcheck.md)in dieser Datei verwenden.

### Licenses.ps1

{% hint style="info" %}
Gespeichert in `.universal\licenses.ps1`
{% endhint %}

Dieses Skript ist für die Definition der in PowerShell Universal verwendeten Lizenz verantwortlich.

Sie können das Cmdlet [`Set-PSULicense` ](/powershell-universal/de/powershell-befehle/set-psulicense.md)in dieser Datei verwenden.

```
Set-PSULicense -Key "<License></License>"
```

### Initialize.ps1

{% hint style="info" %}
Gespeichert in `.universal\initialize.ps1`
{% endhint %}

Dieses Skript wird ausgeführt, bevor innerhalb von PowerShell Universal eine Konfiguration erfolgt. Der Server läuft, aber keiner der Dienste wurde gestartet. Dies ist nützlich, um Module zu installieren oder Geheimnis-Tresore zu konfigurieren, bevor die Erkennung dieser Ressourcen gestartet wird.

### Middleware.ps1

{% hint style="info" %}
Gespeichert in `.universal\middleware.ps1`
{% endhint %}

Ermöglicht die Anpassung der HTTP-Anfragen in PowerShell Universal.

### PublishedFolders.ps1

{% hint style="info" %}
Gespeichert in `.universal\publishedFolders.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [veröffentlichten Ordnern](/powershell-universal/de/plattform/published-folders.md) verantwortlich.

Sie können das Cmdlet [`New-PSUPublishedFolder` ](/powershell-universal/de/powershell-befehle/new-psupublishedfolder.md)in dieser Datei verwenden.

### RateLimits.ps1

{% hint style="info" %}
Gespeichert in `.universal\rateLimits.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Ratenbegrenzungen](/powershell-universal/de/api/rate-limiting.md) verantwortlich.

Sie können das Cmdlet [`New-PSURateLimit` ](/powershell-universal/de/powershell-befehle/new-psuratelimit.md)in dieser Datei verwenden.

### Roles.ps1

{% hint style="info" %}
Gespeichert in `.universal\roles.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Rollen](/powershell-universal/de/apps/role-based-access.md) verantwortlich.

Sie können das Cmdlet [`New-PSURole` ](/powershell-universal/de/powershell-befehle/new-psurole.md)in dieser Datei verwenden.

### Schedules.ps1

{% hint style="info" %}
Gespeichert in `.universal\schedules.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Zeitplänen](/powershell-universal/de/automatisierung/schedules.md) verantwortlich.

Sie können das Cmdlet [`New-PSUSchedule` ](/powershell-universal/de/powershell-befehle/new-psuschedule.md)in dieser Datei verwenden.

### Scripts.ps1

{% hint style="info" %}
Gespeichert in `.universal\scripts.ps1`
{% endhint %}

Dieses Skript enthält die Metadaten für [Skripte](/powershell-universal/de/automatisierung/scripts.md). Die eigentlichen Skripte können an beliebiger Stelle gespeichert werden. Der angegebene Pfad ist relativ zum Repository. Vollständige Pfadnamen sind ebenfalls zulässig.

Sie können das Cmdlet [`New-PSUScript` ](/powershell-universal/de/powershell-befehle/new-psuscript.md)in dieser Datei verwenden.

### Settings.ps1

{% hint style="info" %}
Gespeichert in `.universal\settings.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration der System-[Einstellungen](/powershell-universal/de/config/settings.md) verantwortlich.

Sie können das Cmdlet [`Set-PSUSetting` ](/powershell-universal/de/powershell-befehle/set-psusetting.md)in dieser Datei verwenden.

### Tags.ps1

{% hint style="info" %}
Gespeichert in `.universal\tags.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von Tags verantwortlich.

Sie können das Cmdlet [`New-PSUTag` ](/powershell-universal/de/powershell-befehle/new-psutag.md)in dieser Datei verwenden.

### Triggers.ps1

{% hint style="info" %}
Gespeichert in `.universal\triggers.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Triggern](/powershell-universal/de/automatisierung/triggers.md) verantwortlich.

Sie können das Cmdlet [`New-PSUTrigger` ](/powershell-universal/de/powershell-befehle/new-psutrigger.md)in dieser Datei verwenden.

### Variables.ps1

{% hint style="info" %}
Gespeichert in `.universal\variables.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Variablen](https://github.com/Devolutions/docs/tree/master/translations/de/powershell-universal/config/broken-reference/README.md) verantwortlich.

Sie können das Cmdlet [`New-PSUVariable`](/powershell-universal/de/powershell-befehle/new-psuvariable.md) in dieser Datei verwenden.

### Vaults.ps1

{% hint style="info" %}
Gespeichert in `.universal\vaults.ps1`
{% endhint %}

Dieses Skript ist für die Konfiguration von [Tresoren](/powershell-universal/de/plattform/variables.md#vaults) verantwortlich.

## Vorlagen

Über den Ordner Templates innerhalb des Repositorys können Sie eine Auswahl von Elementvorlagen für häufig verwendete Funktionen in PowerShell Universal erstellen. Dazu gehören Apps, App-Seiten, Skripte und Endpunkte.

<figure><img src="/files/BzeTvgQtAqzGfrZ1Glgr" alt=""><figcaption><p>Skriptvorlage</p></figcaption></figure>

PS1-Dateien in den folgenden Ordnern werden in der Verwaltungskonsole als Vorlagen bereitgestellt.

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

## .psuignore

Die Datei `.psuignore` kann verwendet werden, um bestimmte Dateien oder Muster aus dem Dateisystem-Watcher in PowerShell Universal auszuschließen. Dies ist nützlich, wenn Dateien wie Protokolle im Repository-Verzeichnis gespeichert werden. Das Format der Datei sollte ein einzelner regulärer Ausdruck pro Zeile sein. Wenn der reguläre Ausdruck auf einen Pfad passt, ignoriert das Konfigurationssystem diesen.

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

## Dateikodierung

Sie können die Dateikodierung auf der Seite Einstellungen \ Allgemein konfigurieren. Standardmäßig verwendet PowerShell Universal UTF-8 mit einer Bytereihenfolge-Markierung (`utf-8-bom`) am Anfang der Datei. Wenn Sie die Bytereihenfolge-Markierung deaktivieren möchten, können Sie die Kodierung auf `utf-8` ändern.

Unterstützte Kodierungen sind alle, die von [Encoding.GetEncodings](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-10.0#system-text-encoding-getencodings) zurückgegeben werden. Zum Beispiel:

* `utf-32`
* `utf-32-bom`
* `utf-8`
* `utf-8-bom`
* `windows-1250`

Sie können `-bom` an das Ende der Kodierung anfügen, um die Bytereihenfolge-Markierung hinzuzufügen.

## Schreibgeschützte Konfigurationsabschnitte

Schreibgeschützte Abschnitte ermöglichen es Ihnen, Skripte in Ihre Konfigurationsdateien einzubinden, die von Änderungen in der Admin-Konsole nicht berührt werden. Dadurch können Sie zusätzliche Logik ausführen, Ressourcen dynamisch generieren und Klassen zur Verwendung in OpenAPI-Schemas erstellen.

Die Region `PSUHeader` wird am Anfang Ihres Skripts platziert. `PSUFooter` wird am Ende platziert.

```powershell
#region PSUHeader 

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

    }
}

#endregion

New-PSUEndpoint -Url "/user" -Endpoint {

}

#region PSUFooter
#endregion
```

## Datenbankressourcen

Sie können optional konfigurieren, dass Ressourcen in der Datenbank anstatt im Konfigurations-Repository gespeichert werden. Diese Ressourcen werden nicht mehr auf der Festplatte, sondern direkt in der Datenbank gespeichert. Dadurch stehen sie sofort für alle verbundenen Computer im PSU-Cluster zur Verfügung.

{% hint style="warning" %}
Wenn dies konfiguriert ist, werden Konfigurationsdateien für Ressourcen ignoriert.
{% endhint %}

Einige Ressourcen werden nicht unterstützt. Dazu gehören:

* Apps
* Endpunkte mit Pfaden
* Skripte
* Module

Um eine Ressource für die Datenbankpersistenz zu konfigurieren, müssen Sie die [App-Einstellungen](/powershell-universal/de/config/settings.md) für jeden Klassentyp einrichten. Unten finden Sie ein Beispiel für das Speichern von Zeitplänen in der Datenbank.

```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.
