For the complete documentation index, see llms.txt. This page is also available as Markdown.

App-Einstellungen

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.

Bei der Installation über die MSI-Datei lautet das Installationsverzeichnis für PowerShell Universal ${env:ProgramFiles(x86)}\Universal.

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.

{
  "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.

Befehlszeile

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

Beschreibungen der Einstellungen

Kestrel / Endpunkte

Standardwert

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.

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

Schlüssel
Beschreibung

ConnectionString

Legt die Verbindungszeichenfolge für Application Insights fest.

Protokollierung

Standardwert

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

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

CorsHosts

Standardwert

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.

Data

Standardwert

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.

InvisibilityTimeoutMinutes

Die Anzahl der Minuten, bevor ein Auftrag in Hangfire abläuft. Standardmäßig 5. Gilt nur für PostgreSQL.

API

Standardwert

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.

Authentifizierung

Standardwert

Windows

Schlüssel

Beschreibung

Enabled

Aktiviert oder deaktiviert die Windows-Authentifizierung.

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

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

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

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

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.

UniversalAutomation

Einstellungen für automatisierungsspezifische Funktionen.

Standardwert

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

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

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.

Sie können dieselbe Rolle mit Umgebungsvariablen definieren.

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.

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

Ü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 der Runtime verhindert dies. Mit dieser deaktivierten Einstellung können Sie keine .NET-Debugging-Tools verwenden.

Siehe auch

Zuletzt aktualisiert

War das hilfreich?