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

# App-Einstellungen

Konfigurieren Sie die Anwendungseinstellungen von PowerShell Universal in appsettings.json, einschließlich Kestrel-Endpunkten, Authentifizierung, JWT und Datenpersistenz.

Die Anwendungseinstellungen finden Sie in der Datei `appsettings.json` im Installationsverzeichnis. Diese Datei definiert verschiedene Einstellungen, die Sie auf PowerShell Universal anwenden können. Obwohl Sie diese Datei direkt bearbeiten können, wird empfohlen, eine der folgenden Methoden zu verwenden, um Einstellungen dauerhaft zu speichern, da die Datei `appsettings.json` im Installationsverzeichnis bei Upgrades überschrieben wird.

{% hint style="info" %}
Bei der Installation über die MSI-Datei lautet das Installationsverzeichnis für PowerShell Universal `${env:ProgramFiles(x86)}\Universal`.
{% endhint %}

## ProgramData AppSettings.json

Sie können eine appsettings.json-Datei im Ordner `$Env:ProgramData\PowerShellUniversal` erstellen. Sie können eine Teilmenge der Einstellungen aus der Datei `appsettings.json` verwenden. Wenn Sie beispielsweise die JWT-Einstellungen überschreiben möchten, könnten Sie eine `appsettings.json`-Datei wie diese verwenden.

```javascript
{
  "Jwt": {  
    "SigningKey": "PleaseUseYourOwnSigningKeyHere",  
    "Issuer": "IronmanSoftware",
    "Audience": "PowerShellUniversal"
  }
}
```

## Umgebungsvariablen

Sie können auch Umgebungsvariablen für Ihre Einstellungen festlegen. Umgebungsvariablen sollten einen Unterstrich zwischen jeder Teilmenge der Datei `appsettings.json` enthalten. Wenn Sie beispielsweise den JWT-Signaturschlüssel über eine Umgebungsvariable ändern möchten, würden Sie die Variable `$Env:Jwt__SigningKey` setzen. Wenn Sie die externe API-URL festlegen möchten, würden Sie `$Env:Api__Url` setzen.

### Beispiele

Verwendung einer Umgebungsvariablen für das OpenID Connect-Secret.

```
$Env:Authentication__OIDC__ClientSecret = "mySecret"
```

Verwendung einer Umgebungsvariablen für den JWT-Signaturschlüssel.

```
$Env:Jwt__SigningKey = "mySigningKey"
```

## Befehlszeile

Sie können den Speicherort der Datei `appsettings.json` mit dem Befehlszeilenargument `--appsettings` für `Universal.Server.exe` angeben.

```powershell
.\Universal.Server.exe --appsettings C:\appsettings.json
```

## Beschreibungen der Einstellungen

### Kestrel / Endpunkte

**Standardwert**

```javascript
"Kestrel": {
  "Endpoints": {
    "HTTP": {
      "Url": "http://*:5000"
    }
  },
  "RedirectToHttps": "false"
},
```

Im Abschnitt Kestrel-Endpunkte können Sie den Webserver konfigurieren. Diese Einstellungen werden beim Hosting in IIS nicht verwendet. In diesem Abschnitt können Sie Optionen wie HTTPS und den Port konfigurieren, auf dem PowerShell Universal lauscht.

Kestrel ist die Webserver-Implementierung für ASP.NET Core, die PowerShell Universal verwendet. Weitere Informationen zu den Konfigurationsoptionen für Kestrel finden Sie auf dieser [Microsoft-Dokumentationsseite](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#listenoptionsusehttps).

| Schlüssel         | Beschreibung                                                                                                                                                                   |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| RedirectToHttps   | Wenn true, leitet der Webserver HTTP-Anfragen an HTTPS weiter                                                                                                                  |
| BasePath          | Erforderlich bei der Konfiguration von PowerShell Universal als verschachtelte Website innerhalb von IIS. Dies sollte die verschachtelte IIS-Route enthalten, wie z. B. `/psu` |
| Hsts \ MaxAgeDays | Legt das maximale Alter in Tagen für [HTTP Strict Transport Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security) fest.     |
| CookiePolicy      | Wenn auf SameSiteNone gesetzt, wird der Wert SameSite=None für Cookies in PSU gesetzt. Dies ist nützlich, wenn PSU in iframes gehostet wird.                                   |
| Headers           | Ein Objekt, bei dem die Schlüssel die Header sind, die bei jeder Anfrage gesetzt werden, und der Wert der Wert des Headers ist.                                                |

### Azure Application Insights

**Standardwert**

```javascript
"ApplicationInsights": {
  "ConnectionString": ""
},
```

| Schlüssel        | Beschreibung                                                    |
| ---------------- | --------------------------------------------------------------- |
| ConnectionString | Legt die Verbindungszeichenfolge für Application Insights fest. |

### Protokollierung

**Standardwert**

```javascript
{
    "SystemLogPath": "%PROGRAMDATA%/PowerShellUniversal/Logs/System/log.txt",
    "SystemLogLevel": "Information"
}
```

Legt den Pfad und die Stufe des Systemprotokolls fest. Dies wird nach dem Laden durch die Protokollstufe in settings.ps1 überschrieben. Diese Einstellung ist nützlich für die Fehlerbehebung während des Systemstarts.

| Schlüssel      | Beschreibung                                                                                    |
| -------------- | ----------------------------------------------------------------------------------------------- |
| SystemLogPath  | Pfad zur Protokolldatei.                                                                        |
| SystemLogLevel | Die Systemprotokollstufe. Sie können Werte wie Debug, Information, Warning und Error festlegen. |

### AllowedHosts

**Standardwert**

```javascript
    "AllowedHosts": "*",
```

Die Hosts, die sich mit dem Webserver verbinden dürfen. Standardmäßig jeder Host.

### **CorsHosts**

**Standardwert**

```javascript
    "CorsHosts": "",
```

Konfiguriert die Hosts, die Cross-Origin Resource Sharing-Anfragen (CORS) an den Server stellen dürfen. Um mehrere Hosts zuzulassen, trennen Sie jeden Host durch ein Semikolon.

```javascript
"CorsHosts" : "https://www.google.com;https://login.microsoftonline.com"
```

### **Data**

**Standardwert**

```javascript
"Data": {
  "RepositoryPath": "%ProgramData%\\UniversalAutomation\\Repository",
  "ConnectionString": "%ProgramData%\\UniversalAutomation\\database.db",
  "GitRemote": "",
  "GitUserName": "",
  "GitPassword": "", 
  "GitBranch": "",
  "ConfigurationScript": "",
  "ExternalGitClient": false,
  "Mode": "automatic",
  "SlowQueryLimit": 500,
  "Persistence": {}
},
```

| Schlüssel                  | Beschreibung                                                                                                                                                                  |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| RepositoryPath             | Pfad zum Speicherort der von Universal verwendeten Konfigurationsdateien.                                                                                                     |
| ConnectionString           | Pfad zur von Universal verwendeten Datenbank.                                                                                                                                 |
| GitRemote                  | Git-Remote, das zur Synchronisierung mit Universal verwendet wird.                                                                                                            |
| GitBranch                  | Git-Branch, der beim Synchronisieren mit Universal ausgecheckt wird.                                                                                                          |
| GitUserName                | Git-Benutzername, der zur Synchronisierung mit dem GitRemote verwendet wird. Bei Verwendung eines PAT kann dies ein beliebiger Wert sein.                                     |
| GitPassword                | Das Git-Benutzerpasswort oder das persönliche Zugriffstoken, das zur Synchronisierung mit dem GitRemote verwendet wird.                                                       |
| GitSyncTimeout             | Die Anzahl der Sekunden, bevor ein externer Git-Client-Befehl abläuft. Standardmäßig 60 Sekunden.                                                                             |
| ConfigurationScript        | Speicherort eines benutzerdefinierten Konfigurationsskripts, das geladen werden soll. Sie können aus diesem Skript Objekte wie Skripte, Dashboards und Endpunkte zurückgeben. |
| ExternalGitClient          | Wenn auf true gesetzt, wird der Git-Client des Betriebssystems anstelle des integrierten Bibliotheks-Clients verwendet                                                        |
| Mode                       | Legt den Git-Modus fest. Er kann entweder manuell oder automatisch sein. Standardmäßig manuell.                                                                               |
| SlowQueryLimit             | Die Anzahl der Millisekunden, die eine SQL-Abfrage laufen muss, bevor eine Protokollmeldung geschrieben wird. Standardmäßig 200 ms. Nur für MS SQL verfügbar.                 |
| Persistence                | Konfiguriert die [Datenbankpersistenz von Ressourcen](/powershell-universal/de/config/repository.md).                                                                         |
| InvisibilityTimeoutMinutes | Die Anzahl der Minuten, bevor ein Auftrag in Hangfire abläuft. Standardmäßig 5. Gilt nur für PostgreSQL.                                                                      |

### **API**

**Standardwert**

```javascript
"Api": {
  "Url": "",
  "HideManagementDoc": false
},
```

| Schlüssel         | Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Url               | Legt die externe URL fest, die intern von Universal verwendet wird. Dies ist notwendig, wenn Universal innerhalb eines Reverse-Proxys wie IIS ausgeführt wird. Bei der Verwendung von Cmdlets wie `Get-UAScript` innerhalb eines laufenden Auftrags muss der Universal-Server ermitteln, wo sich der Webserver befindet. Wenn er innerhalb eines Proxys ausgeführt wird, kann er dies nicht selbst ermitteln. Sie sollten dies so konfigurieren, dass es auf den Namen und Port der IIS-Website in dieser Konfiguration verweist. |
| HideManagementDoc | Wenn true, wird die OpenAPI-Dokumentation der PowerShell Universal Management-API ausgeblendet.                                                                                                                                                                                                                                                                                                                                                                                                                                   |

{% hint style="warning" %}
\`Api.Url\` wird intern von PowerShell Universal verwendet, wenn Cmdlets aus Aufträgen, Endpunkten oder anderen internen Ausführungskontexten heraus den PSU-Server zurückrufen müssen. Stellen Sie in Reverse-Proxy- oder Load-Balancing-Umgebungen sicher, dass dieser Wert auf eine stabile, direkt erreichbare URL für den PSU-Host verweist. Die Verwendung eines DNS-Alias oder eines anderen indirekten Endpunkts kann zu sporadischen Cmdlet-Fehlern führen, wenn dieser Alias über einen instabilen Proxy- oder Backend-Pfad aufgelöst wird. Geben Sie bei Bedarf \`-ComputerName\` explizit für den Cmdlet-Aufruf an.
{% endhint %}

### **Authentifizierung**

**Standardwert**

```javascript
"Authentication" : {
    "Windows": {
      "Enabled": "false"
    },
    "WSFed": {
      "Enabled": "false",
      "MetadataAddress": "",
      "Wtrealm": "",
      "CallbackPath": "/auth/signin-wsfed",
      "Wreply": "",
      "UseTokenLifetime": true,
      "CorrelationCookieSameSite": ""
    },
    "OIDC": {
      "Enabled": "false",
      "CallbackPath": "/auth/signin-oidc",
      "ClientID": "",
      "ClientSecret": "",
      "Resource": "",
      "Authority": "",
      "ResponseType": "",
      "SaveTokens": "false",
      "CorrelationCookieSameSite": "",
      "UseTokenLifetime": true
    },
    "OIDC": {
      "Enabled": "false",
      "CallbackPath": "/auth/signin-oidc",
      "ClientID": "",
      "ClientSecret": "",
      "Resource": "",
      "Authority": "",
      "ResponseType": "",
      "SaveTokens": "false",
      "CorrelationCookieSameSite": "",
      "UseTokenLifetime": true,
      "Scope": "openid profile groups",
      "GetUserInfo": false
    },
    "ClientCertificate": {
      "Enabled": "false"
    },
    "SessionTimeout": "25"
  },
```

**Windows**

| **Schlüssel** | Beschreibung                                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Enabled       | Aktiviert oder deaktiviert die [Windows-Authentifizierung](/powershell-universal/de/api/security.md#authenticating-with-windows-authentication). |

#### OIDC

Einstellungen für die OpenID Connect-Authentifizierung.

| Schlüssel                 | Beschreibung                                                                                                                                                            |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Enabled                   | Ob OIDC aktiviert ist.                                                                                                                                                  |
| CallbackPath              | Der Pfad, den der OIDC-Anbieter zurückruft.                                                                                                                             |
| ClientID                  | Die konfigurierte OIDC-Client-ID.                                                                                                                                       |
| ClientSecret              | Das konfigurierte OIDC-Client-Secret.                                                                                                                                   |
| Resource                  | Ressourcen, die mit diesem OIDC-Token gewährt werden.                                                                                                                   |
| Authority                 | Die Authority, die bei der Authentifizierung aufgerufen wird. Dies ist die URL Ihres OIDC-Anbieters.                                                                    |
| ResponseType              | Der Typ der vom Anbieter zurückgegebenen Antwort. Der häufigste Wert hier ist `code`                                                                                    |
| SaveTokens                | Ob das Token gespeichert werden soll, damit es für Endpunkte wie Dashboards verfügbar ist.                                                                              |
| CorrelationCookieSameSite | [Einstellungen für SameSite des Korrelations-Cookies.](https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-5.0)                              |
| UseTokenLifetime          | Wenn auf true gesetzt, wird die Cookie-Lebensdauer auf die Token-Lebensdauer gesetzt. Dies überschreibt den Wert für das Sitzungs-Timeout.                              |
| GetUserInfo               | Gibt zusätzliche Benutzerinformationen zur Verwendung in roles.ps1-Dateien zurück. Sie können auf die zusätzlichen Informationen über die Variable $UserInfo zugreifen. |

#### WSFed

WS-Federation-Authentifizierungseinstellungen.

| Schlüssel                 | Beschreibung                                                                                                                               |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Aktiviert                 | Ob WS-Fed aktiviert ist.                                                                                                                   |
| MetadataAddress           | Die Metadatenadresse zum Abrufen von Informationen über die WS-Fed-Instanz.                                                                |
| Wrealm                    |                                                                                                                                            |
| Wreply                    |                                                                                                                                            |
| CallbackPath              | Der Pfad, den der OIDC-Anbieter zurückruft.                                                                                                |
| UseTokenLifetime          | Wenn auf true gesetzt, wird die Cookie-Lebensdauer auf die Token-Lebensdauer gesetzt. Dies überschreibt den Wert für das Sitzungs-Timeout. |
| CorrelationCookieSameSite | [Correlation-Cookie-SameSite-Einstellungen.](https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-5.0)           |

#### Schwellenwert für Sitzungs-Timeout (Minuten)

| Schlüssel      | Beschreibung                                                                 |
| -------------- | ---------------------------------------------------------------------------- |
| SessionTimeout | Anzahl der Minuten, bevor eine angemeldete Sitzung abläuft (Standardwert 25) |

### **JWT**

JSON-Web-Token-Konfigurationseinstellungen

**Standardwert**

```javascript
"Jwt": {  
  "SigningKey": "PleaseUseYourOwnSigningKeyHere",  
  "Issuer": "IronmanSoftware",
  "Audience": "PowerShellUniversal"
},
```

| Schlüssel  | Beschreibung                                      |
| ---------- | ------------------------------------------------- |
| SigningKey | Der Signaturschlüssel für die JWT-Token.          |
| Issuer     | Der Aussteller, der im Token enthalten sein wird. |
| Audience   | Die Zielgruppe, die im Token enthalten sein wird. |

### Secrets

Optionen zum Konfigurieren der standardmäßigen Secret-Tresore.

**Standardwert**

```json
"Secrets": {
  "SecretStore": {
    "Password": "PSUSecretStore"
  },
  "Database": {
    "EncryptionKey": "=b0ywQA@VOSdr&R7an5g&XK6NVO%s4Tf",
    "Password": "",
    "KeySize": 128
  },
  "SecretManagement": {
    "OutOfProcess": false
  }
}
```

| Schlüssel                       | Beschreibung                                                                                                                                     |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| SecretStore \ Password          | Das Passwort für den PSUSecretStore-Tresor. Dies verwendet das Microsoft SecretStore-Modul.                                                      |
| Database \ EncryptionKey        | Der AES-128-Verschlüsselungsschlüssel, der zum Verschlüsseln der in der Datenbank gespeicherten Secrets verwendet wird.                          |
| Database \ Password             | Ein Passwort, das zum Generieren eines Verschlüsselungsschlüssels verwendet wird. EncryptionKey wird ignoriert, wenn ein Passwort angegeben ist. |
| Database \ KeySize              | Die Anzahl der Bytes im Schlüssel. Sollte ein Vielfaches von 128 sein, Standardwert ist 128.                                                     |
| SecretManagement \ OutOfProcess | Gibt an, ob Secret-Management-Vorgänge außerhalb des Prozesses ausgeführt werden sollen. Standardwert ist false.                                 |

#### Generieren eines Verschlüsselungsschlüssels

Verschlüsselungsschlüssel sind 128 Bit lang und erfordern die richtige Länge. Sie werden als Base64-Zeichenfolge codiert und beim Start in Bytes konvertiert.

Sie können den folgenden Code verwenden, um einen geheimen Schlüssel der richtigen Länge zu generieren.

```powershell
$random = [System.Security.Cryptography.RandomNumberGenerator]::Create();
$buffer = New-Object byte[] 16;
$random.GetBytes($buffer);
[Convert]::ToBase64String($buffer)
```

### UniversalAutomation

Einstellungen für automatisierungsspezifische Funktionen.

**Standardwert**

```json
"UniversalAutomation": {
    "Queues": [],
    "JobHandshakeTimeout": 30,
    "JobDebugging": false,
    "ContinueJobOnServerStop": false,
    "HangfireWorkerCount" : 100
  }
```

| Schlüssel               | Beschreibung                                                                                                                                                                                                                                          |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Queues                  | Benutzerdefinierte Warteschlangen, zu denen diese PSU-Instanz gehört.                                                                                                                                                                                 |
| JobHandshakeTimeout     | Die Anzahl der Sekunden, die gewartet wird, bevor ein Job nach dem Start des PowerShell-Prozesses zu seiner Ausführung als fehlgeschlagen gilt, wenn der Prozess nicht mit dem Server kommuniziert.                                                   |
| JobDebugging            | Ob beim Starten eines Jobs Dateien im temporären Verzeichnis generiert werden sollen. Dies ist nützlich für die Fehlersuche, wenn bei Jobs vor dem Start ein Timeout auftritt.                                                                        |
| ContinueJobOnServerStop | Ob ein Job weiter ausgeführt werden soll, nachdem der Dienst gestoppt wurde. Der Jobfortschritt kann nicht gemeldet werden, das Skript wird jedoch weiter ausgeführt.                                                                                 |
| HangfireWorkerCount     | Die Anzahl der Hangfire-Worker-Threads, die auf dem Server gestartet werden. Diese Einstellung ist knotenspezifisch. Der Standardwert ist 100. Dies ist die Gesamtzahl der Jobs, die auf dem jeweiligen Knoten gleichzeitig ausgeführt werden können. |

### **HideAdminConsole**

```json
{
    "HideAdminConsole": false
}
```

Verhindert, dass der Dienst die Admin-Konsole bereitstellt. Dadurch wird verhindert, dass die Admin-Konsole von einem Benutzer verwendet wird, einschließlich Administratoren.

### NodeName

```json
{
    "NodeName": ""
}
```

Die Option für den Knotennamen wird verwendet, um den Namen der PowerShell Universal-Instanz zu ändern. Standardmäßig ist dies der Name des lokalen Computers. Bei der Verwendung von PowerShell Universal in einem Container kann dies problematisch werden, da sich der Name bei jedem Neustart des Containers ändern kann.

Um einen statischen Knotennamen festzulegen, ändern Sie diesen Parameter.

## Statische Ressourcen

Sie können statische Ressourcen über App-Einstellungen definieren. Dazu gehören Umgebungsvariablen und appsettings.json. Um eine Ressource zu definieren, verwenden Sie den Knoten `Resources` in appsettings.json oder das Präfix `Resources` bei einer Umgebungsvariablen.

Um beispielsweise eine statische Rolle in appsettings.json zu definieren, verwenden Sie Folgendes.

```json
{
    "Resources": {
        "Roles": [
            {
                "Name": "Static Role",
                "ClaimType": "group",
                "ClaimValue": "xyz123"
            }
        }
    }
}
```

Sie können dieselbe Rolle mit Umgebungsvariablen definieren.

```powershell
$ENV:Resources__Roles__0__Name = "Static Role"
$ENV:Resources__Roles__0__ClaimType = "group"
$ENV:Resources__Roles__0__ClaimValue = "xyz123"
```

### Beispiel: Docker Compose

Sie können Umgebungsvariablen in einer Docker Compose-YML-Datei verwenden, um Ressourcen zu definieren, die in PowerShell Universal nach dem Start verfügbar sind. Das folgende Beispiel erstellt Tags und eine Rolle, legt einen benutzerdefinierten Admin-Titel fest, fügt eine Lizenz hinzu und legt die Standardumgebung fest.

```yaml
services:    
    psu:         
      image: devolutions/powershell-universal:latest
      environment:
          - Resources__Tags__0__Name=Production  
          - Resources__Tags__1__Name=Development
          - Resources__Roles__0__Name=PSUAdmin
          - Resources__Roles__0__ClaimType=groups
          - Resources__Roles__0__ClaimValue=1234567890abcdef1234567890abcdef
          - Resources__Roles__0__Permissions_0=*
          - Resources__Settings__DefaultEnvironment=PowerShell 7
          - Resources__Branding__AdminConsoleTitle=PSU Admin Console
          - Authentication__OIDC__Enabled=true
          - Authentication__OIDC__ClientId=123-123-123-123-123
          - Authentication__OIDC__ClientSecret=secret
          - Authentication__OIDC__Authority=https://login.microsoftonline.com/123-123-123-123
          - PSULICENSE=<License></License>
      ports:
        - "5000:5000"
```

## .NET-Runtime-Einstellungen

Die .NET-Runtime unterstützt ebenfalls Einstellungen, die für PowerShell Universal gelten. Möglicherweise möchten Sie diese Einstellungen an Ihre Anforderungen anpassen.

Alles über [.NET-Runtime-Einstellungen finden Sie in den Microsoft Docs](https://learn.microsoft.com/en-us/dotnet/core/runtime-config/).

### Übermäßig viele temporäre Dateien

In Linux-Umgebungen werden möglicherweise viele temporäre Dateien von der Runtime erstellt, um Debugging-Funktionen zu ermöglichen. Das [Deaktivieren der Diagnoseeinstellungen](https://learn.microsoft.com/en-us/dotnet/core/runtime-config/debugging-profiling#enable-diagnostics) der Runtime verhindert dies. Mit dieser deaktivierten Einstellung können Sie keine .NET-Debugging-Tools verwenden.

```powershell
$Env:DOTNET_EnableDiagnostics = $false
```

### Siehe auch

* [Devolutions Academy – Creating a basic endpoint](https://academy.devolutions.net/student/activity/3466014-creating-a-basic-endpoint)


---

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