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

Umgebungen

Mit Umgebungen können Sie eine ausführbare Programmdatei, Argumente, Module und Variablen definieren, die beim Ausführen von Skripten, beim Hosten von APIs und Dashboards verwendet werden.

Umgebungen werden in der Datei environments.ps1 gespeichert.

Umgebungen konfigurieren

Um Umgebungen zu konfigurieren, können Sie die Seite Einstellungen \ Umgebungen verwenden.

Seite Umgebungen

Umgebungen unterstützen das Festlegen von Name, Pfad, Argumenten, Modulen und Variablen.

Dialog Umgebungseinstellungen

Name

Der Name der Umgebung. Dieser Name wird in der gesamten übrigen Plattform angezeigt, wenn Skripte ausgeführt, die API-Hostumgebung konfiguriert und Dashboards gehostet werden.

Pfad und Argumente

Umgebungen unterstützen das Definieren eines Pfads zu einer ausführbaren Programmdatei und von Argumenten für diese ausführbare Programmdatei. Diese sollten entweder PowerShell.exe oder Pwsh.exe sein.

Sie können auch Module und Variablen definieren.

Module

Die Modulliste ermöglicht es Ihnen, null oder mehr Module zu definieren, die in den PowerShell-Runspaces für die Umgebung geladen werden. Diese Module sind Teil des initialen Sitzungsstatus, sodass sie nicht manuell geladen werden müssen. Elemente, die dieser Liste hinzugefügt werden, können entweder Modulnamen oder vollständige Pfade zu Moduldateien sein.

Variablen

Die Variablenliste ermöglicht es Ihnen, null oder mehr Variablen zu definieren, die in den PowerShell-Runspaces für die Umgebung geladen werden. Diese Liste kann aus Variablennamen aus der Variablenkonfiguration bestehen.

Sie können auch Platzhalter (*) verwenden, um mehrere Variablen einzubeziehen, die einem Muster entsprechen.

PSModulePath

Sie können den Parameter -PSModulePath von New-PSUEnvironment verwenden, um zusätzliche PSModulePaths zu konfigurieren, die in die Umgebung einbezogen werden.

Startskripte

Startskripte werden einmal ausgeführt, wenn die Umgebung erstmals einen Runspace erstellt. Bei APIs geschieht dies immer dann, wenn ein Runspace erstellt wird, um eine HTTP-Anfrage zu bearbeiten. Dies kann häufig vorkommen, wenn der Server ausgelastet ist. Bei Apps (früher als Dashboards bekannt) geschieht dies immer dann, wenn ein Runspace erstellt wird, um einen Endpunkt zu bedienen, der ausgeführt wird, während der Benutzer eine App (Dashboard) ansieht. Bei ausgelasteten Servern und Apps mit vielen dynamischen Komponenten geschieht dies häufiger. Bei Jobs geschieht dies einmal, wenn der Job gestartet wird.

Startskripte sind relativ zum Repository-Ordner. Wenn Sie beispielsweise ein Skript mit dem Namen startup.ps1 in Ihrem Repository-Ordner hätten, würden Sie in der Konfiguration einfach den Dateinamen angeben. Wenn Sie ein Skript in einem Verzeichnis hätten, müssten Sie dieses ebenfalls angeben.

Plattformvariablen sind in Startskripten nicht verfügbar.

Umgebungen verwenden

Umgebungen können plattformweit verwendet werden.

APIs

Um die zu verwendende Umgebung auszuwählen, ändern Sie die Datei settings.ps1 und fügen Sie den Parameter -ApiEnvironment von Set-PSUSetting ein. Es muss der Name der Umgebung sein.

Automatisierung

Jedes Skript, jeder Job und jeder Zeitplan kann eine Umgebung verwenden. Sie können Umgebungen für Skripte definieren, indem Sie die Datei scripts.ps1 ändern und den Parameter -Environment von New-PSUScript festlegen. Um die Umgebung eines Zeitplans festzulegen, setzen Sie den Parameter -Environment von New-PSUSchedule in schedules.ps1. Beim Aufrufen eines Skripts können Sie ebenfalls eine zu verwendende Umgebung auswählen.

Apps (Dashboards)

Um eine bestimmte Umgebung für eine App (Dashboard) zu verwenden, setzen Sie den Parameter -Environment von New-PSUApp in dashboards.ps1.

Sicherheit

Standardmäßig erfolgen Authentifizierung und Autorisierung innerhalb des Universal.Server.exe-Prozesses. Um diese in einem anderen Prozess auszuführen, können Sie eine Umgebung auswählen, indem Sie den Parameter -SecurityEnvironment von Set-PSUSetting in settings.ps1 festlegen. Weitere Informationen hierzu finden Sie unter Security.

Integrierte Umgebung

Die integrierte Umgebung verwendet den PowerShell Universal-Serverprozess direkt, anstatt externe PowerShell-Prozesse zur Bearbeitung von Anfragen zu starten.

Die integrierte Umgebung ist einfacher zu konfigurieren und zu verwenden als mehrere unterschiedliche Umgebungen. Sie werden außerdem eine Leistungsverbesserung feststellen, da keine Serialisierung und Kommunikation über Interprozesskommunikation erforderlich ist.

Der Nachteil ist, dass Sie nicht auf alternative Anmeldeinformationen erhöhen oder alternative PowerShell-Versionen verwenden können. Sie verwenden die aktuelle Version des PowerShell SDK des PowerShell Universal-Servers. Da alle PowerShell-Skripte innerhalb des Dienstes ausgeführt werden, können Sie zudem mit Ihren PowerShell-Skripten die Stabilität der Plattform beeinträchtigen.

Weitere Informationen finden Sie unter Best Practices.

Konfigurieren

Die integrierte Umgebung ist immer verfügbar und Sie müssen sie nicht direkt konfigurieren. Wenn Sie Module importieren oder persistente Runspaces einrichten möchten, können Sie Einstellungen für die integrierte Umgebung in environments.ps1 festlegen.

APIs

Um die integrierte Umgebung festzulegen, können Sie Set-PSUSetting in settings.ps1 verwenden.

Automatisierung

Sie können die integrierte Umgebung Skripten und Zeitplänen zuweisen. Sie können die integrierte Umgebung auch als Standardumgebung für die Plattform festlegen.

Sie können die integrierte Umgebung auch im Ausführungsdialog auswählen.

Apps

Sie können Apps in der integrierten Umgebung ausführen. Wählen Sie die integrierte Umgebung aus der Umgebungs-Dropdown-Liste aus.

PowerShell 7

Die PowerShell 7-Umgebung verwendet einen eingebetteten Hosting-Prozess für das PowerShell SDK, das in PowerShell Universal enthalten ist. Dies ist die empfohlene Umgebung, da sie die größte Kompatibilität mit Modulen von Drittanbietern bietet.

Die PowerShell 7-Umgebung unterstützt die Verwendung von System.Windows.Forms-Assemblys nicht. Wenn diese Assemblys für Skripte oder Module erforderlich sind, verwenden Sie eine benutzerdefinierte Umgebung, die auf pwsh.exe abzielt.

Windows PowerShell 5.1

Die Windows PowerShell 5.1-Umgebung verwendet einen eingebetteten Hosting-Prozess für die PowerShell-Runtime, die auf dem aktuellen Computer gefunden wird. Dies ist die einzige verfügbare Umgebung zum Ausführen von Windows PowerShell-Skripten.

Minimale Umgebungen

Minimale Umgebungen ermöglichen das Ausführen von Skripten in Befehlszeilenanwendungen, die nicht in die PowerShell Universal-Hosting-Umgebung integriert sind. PowerShell Universal erfasst STDOUT und STDERR und zeigt dies im Job-Protokoll an. Einige Anwendungsfälle für minimale Umgebungen sind:

  • Python-Skripte

  • PowerShell-Skripte mit problematischen Modulen

Minimale Umgebungen unterstützen Folgendes nicht:

  • Feedback

  • Fortschritt

  • Geheimnisse

  • Universal Integrated Cmdlets

Minimale Umgebungen erhalten Variablenwerte als Umgebungsvariablen. Beim Definieren einer minimalen Umgebung können Sie die Ersetzungszeichenfolge {scriptPath} verwenden, um die Argumente für die Umgebung so einzurichten, dass beim Ausführen des Skripts der richtige Pfad gesetzt wird.

Zum Beispiel erstellt das Folgende eine PowerShell 7-Umgebung, die die PowerShell Universal-Hosting-Bibliotheken nicht lädt.

Um eine Python-Umgebung zu erstellen, könnten Sie Folgendes tun.

Windows PowerShell-Kompatibilität

Windows PowerShell-Kompatibilität ist eine Funktion von PowerShell 7. Wenn Befehle und Module in PowerShell 7 nicht verfügbar sind, startet die Plattform automatisch einen Windows PowerShell-Prozess im Hintergrund und führt lokales Remoting aus dem PowerShell 7-Prozess durch. Damit wird Rückwärtskompatibilität mit Windows PowerShell-Modulen erreicht.

Möglicherweise sehen Sie auf der Umgebungsseite eine Warnung, wenn diese PowerShell-Funktion aktiviert ist, aufgrund der Auswirkungen auf die PowerShell Universal-Plattform.

Probleme mit WinPS-Kompatibilität in PowerShell Universal

Für jeden von PowerShell Universal geöffneten Runspace, in dem Windows PowerShell-Kompatibilität verwendet wird, wird ein neuer Windows PowerShell-Prozess gestartet. Diese Prozesse werden erst beendet, wenn der Runspace recycelt wird.

Dies verringert die Leistung erheblich aufgrund einer übermäßigen Anzahl laufender Prozesse sowie der Speicher- und CPU-Auslastung, die auf Serialisierung und die Verwaltung von Remote-Runspaces zurückzuführen ist.

Die häufigste Ursache hierfür ist die Verwendung des Active Directory 1.0.0.0-Moduls aus PowerShell 7.

Implizite Windows PowerShell-Kompatibilität deaktivieren

Sie können die Windows PowerShell-Kompatibilität über die Einstellungen in den Eigenschaften der Umgebung deaktivieren.

Für die integrierte Umgebung ist die Windows PowerShell-Kompatibilität standardmäßig deaktiviert und kann nicht aktiviert werden.

Windows PowerShell-Kompatibilität sauber verwenden

Falls erforderlich, können Sie den Windows-Kompatibilitäts-Runspace nach dem Ausführen eines Befehls mit dieser Funktion entfernen. Damit wird der Windows PowerShell-Prozess entfernt. Jedes Mal, wenn dieser Endpunkt ausgeführt wird, muss die Sitzung neu aufgebaut werden.

API

Zuletzt aktualisiert

War das hilfreich?