Jobs
Jobs sind das Ergebnis der Ausführung eines Skripts. Jobs werden basierend auf den Einstellungen auf Skript- und Serverebene aufbewahrt.
Jobs anzeigen
Jobs können durch Klicken auf die Seite Automatisierung / Jobs angezeigt werden. Klicken Sie auf die Schaltfläche Anzeigen, um zum Job zu navigieren. Laufende Jobs können auch abgebrochen werden.

Job-Ausgabe anzeigen
Standard-PowerShell-Streams wie Information, Host, Fehler, Warnung und Verbose werden im Ausgabebereich angezeigt.

Job-Pipeline-Ausgabe anzeigen
Pipeline-Ausgaben für Jobs werden ebenfalls in PowerShell Universal gespeichert. Jedes Objekt, das in die Pipeline geschrieben wird, wird als CliXml gespeichert und kann auf der Registerkarte Pipeline Output angezeigt werden.
Sie können die Baumansicht erweitern, um die Objekte und Eigenschaften aus der Pipeline zu sehen.

Fehler anzeigen
Alle in den Fehlerstream geschriebenen Fehler sind auf der Registerkarte Error auf der Job-Seite verfügbar.

Status
Jobs geben abhängig von der Konfiguration und dem Ergebnis der Ausführung verschiedene Statuswerte zurück. Einstellungen, die den Job-Status beeinflussen können, sind:
ErrorActionPreference
WarningActionPreference
Die folgende Tabelle beschreibt, wie PowerShell Universal Statuswerte behandelt.
Error
Ein Skript hatte einen nicht abbrechenden Fehler.
ErrorActionPreference auf SilentlyContinue setzen
Warning
Ein Skript hatte eine Warnung.
WarningActionPreference auf SilentlyContinue setzen
Failed
Ein Skript hatte einen abbrechenden Fehler.
Behandeln Sie den abbrechenden Fehler oder fangen Sie ihn ab.
Waiting on Feedback
Ein Skript wartet auf Feedback, z. B. Read-Host.
Vermeiden Sie Benutzer-Callbacks wie Read-Host.
Running
Das Skript wird derzeit ausgeführt.
N\A
Queued
Das Skript ist derzeit für die Ausführung in der Warteschlange.
N\A
Feedback
Einige Jobs erfordern Feedback. Jedes Skript, das einen Read-Host-Aufruf enthält, wartet, bis eine Benutzerinteraktion mit diesem Job erfolgt. Der Job befindet sich im Status Waiting for Feedback, und Sie können auf dieses Feedback antworten, indem Sie auf der Job-Seite auf die Schaltfläche Response to Feedback klicken.

Um einen SecureString mit einem Passwort-Eingabefeld zu akzeptieren, können Sie den Parameter -AsSecureString von Read-Host verwenden.
Jobs aus PowerShell aufrufen
Sie können Invoke-PSUScript verwenden, um Jobs von der Befehlszeile aus aufzurufen. Dazu benötigen Sie ein gültiges App Token. Parameter werden über dynamische Parameter des Cmdlets Invoke-PSUScript definiert.
Skripte aus Skripten aufrufen
Sie können UA-Skripte auch aus UA-Skripten aufrufen. Wenn Sie einen Job in UA ausführen, müssen Sie kein App Token oder den Computernamen manuell definieren. Diese werden für Sie definiert. Sie können einfach Invoke-PSUScript innerhalb Ihres Skripts aufrufen, um ein anderes Skript zu starten. Beide Jobs werden in der Benutzeroberfläche angezeigt. Wenn Sie warten möchten, bis das Skript abgeschlossen ist, verwenden Sie Wait-PSUJob.
Auf den Abschluss eines Skripts warten
Sie können das Cmdlet Wait-PSUJob verwenden, um auf den Abschluss eines Jobs zu warten. Leiten Sie den Rückgabewert von Invoke-PSUScript per Pipe an Wait-UAJob weiter, um auf den Abschluss des Jobs zu warten. Wait-PSUJob wartet unbegrenzt, sofern nicht der Parameter -Timeout angegeben wird.
Pipeline-Daten zurückgeben
Sie können das Cmdlet Get-PSUJobPipelineOutput verwenden, um die von einem Job erzeugte Pipeline-Ausgabe zurückzugeben. Diese Pipeline-Ausgabe besteht aus deserialisierten Objekten, die während des Jobs in die Pipeline geschrieben wurden. Sie können auf diese Daten von dort zugreifen, wo Sie Zugriff auf die PowerShell Universal Management-API haben.
Die Ausgabe des letzten Jobs zurückgeben
Möglicherweise ist es erforderlich, die Ausgabe der letzten Job-Ausführung eines Skripts zurückzugeben. Dazu müssen Sie eine Kombination von Cmdlets verwenden, um das Skript, die ID des letzten Jobs und dann die Pipeline- oder Host-Ausgabe abzurufen.
Gibt die Ausgabe des letzten Jobs als Objekt zurück
Standardmäßig gibt Get-PSUJobOutput die Ausgabe als Zeichenfolge zurück. Um die Ausgabe als Objekt mit Informationen über die Ausgabe zurückzugeben, verwenden Sie -AsObject.
Ein Skript aufrufen und auf die Ausgabe warten
Sie können den Parameter -Wait von Invoke-PSUScript verwenden, um dies zu erreichen.
Zusätzlich ruft das folgende Beispiel ein Skript auf, speichert das Job-Objekt in einer Variable $job, wartet auf den Abschluss des Jobs und gibt dann die Pipeline- und Host-Ausgabe zurück.
Integrierter Modus
Der integrierte Modus ermöglicht das Aufrufen dieser Cmdlets innerhalb von PowerShell Universal ohne App Token oder Computernamen. Er verwendet den internen RPC-Kanal zur Kommunikation.
Sie können den Parameter -Integrated setzen, um in den integrierten Modus zu wechseln. Dieser Parameter funktioniert außerhalb von PowerShell Universal nicht.
Die folgenden Cmdlets unterstützen den integrierten Modus.
Get-PSUScript
Invoke-PSUScript
Get-PSUJob
Get-PSUJobOutput
Get-PSUJobPipelineOutput
Get-PSUJobFeedback
Set-PSUJobFeedback
Wait-PSUJob
Jobs mit REST aufrufen
Sie können Jobs über REST mithilfe der Management-API von PowerShell Universal aufrufen. Sie benötigen ein gültiges App Token, um Jobs aufzurufen.
Skripte mit REST aufrufen
Um ein Skript aufzurufen, führen Sie einen HTTP-POST an den Skript-Endpunkt mit der ID des Skripts aus, das Sie ausführen möchten.
Parameter bereitstellen
Sie können dem Job Parameter über eine Abfragezeichenfolge übergeben. Parameter werden Ihrem Skript als Zeichenfolgen bereitgestellt.
Die Umgebung festlegen
Sie können die Umgebung festlegen, indem Sie die Eigenschaft environment an den Job-Kontext übergeben. Die Eigenschaft muss der Name einer in Ihrer PSU-Instanz definierten Umgebung sein.
Das Run As-Konto festlegen
Sie können das Run As-Konto festlegen, indem Sie den Namen einer PSCredential-Variable an die Eigenschaft Credential übergeben.
Jobs aus Apps aufrufen
Sie können dieselben Cmdlets, die Sie in anderen PowerShell-Skripten verwenden, nutzen, um Skripte in Apps auszuführen. Möglicherweise möchten Sie dabei ein interaktiveres Erlebnis. Unten finden Sie einige Beispiele, wie Sie dies mit dem App-Framework erreichen.
Ausgabe anzeigen
Sie können die Cmdlets Invoke-PSUScript und Get-PSUJobOutput verwenden, um ein UI-Element zu erstellen, das während der Skriptausführung aktualisiert wird. Angenommen, Sie haben ein Skript wie das unten stehende. Es schreibt einfach 100 Mal alle 100 Millisekunden in den Information-Stream.
Innerhalb Ihrer App können Sie das Skript basierend auf einer Benutzerinteraktion starten und dann ein Element aktualisieren, während das Skript ausgeführt wird. Das folgende Beispiel erstellt eine Schaltfläche und ein pre-Tag-Element, das als Ziel für die Ausgabe des Skripts dient. Wenn der Benutzer auf die Schaltfläche klickt, wird der Job gestartet und auf dessen Abschluss gewartet. Innerhalb der Schleife wird die Ausgabe des Skripts abgerufen und anschließend das pre-Element mit dem Ausgabeinhalt aktualisiert.
Schließlich ruft es einen aktualisierten Status des Jobs ab und wartet 100 Millisekunden, bevor es erneut ausgeführt wird.
Fortschritt anzeigen
Der PowerShell-Host des App-Frameworks verbindet sich automatisch mit Funktionen von PowerShell wie Write-Progress.
Wenn Sie den Parameter -Wait von Invoke-PSUScript verwenden, wird der Fortschritt des Skripts automatisch in einem Dialog in Ihrer App angezeigt. Angenommen, wir haben ein Skript wie unten definiert. Dieses Skript schreibt alle 100 Millisekunden Fortschritt.
Innerhalb unserer App können wir das Skript einfach mit dem Parameter -Wait aufrufen. Wenn der Benutzer auf die Schaltfläche klickt, wird der Fortschritt in der App angezeigt.

Eingabe anfordern
Der PowerShell-Host des App-Frameworks verbindet sich automatisch mit Funktionen von PowerShell wie Read-Host.
Wenn Sie den Parameter -Wait von Invoke-PSUScript verwenden, wird der Benutzer automatisch zur Eingabe aufgefordert, wenn der Befehl Read-Host auftritt. Angenommen, wir haben ein Skript, das mit Read-Host eine Benutzereingabe anfordert.
Rufen Sie in Ihrer App das Skript einfach mit dem Parameter -Wait auf.
Der Benutzer wird dann während der Skriptausführung zur Eingabe aufgefordert.

In Jobs definierte Variablen
In Jobs definierte Variablen finden Sie auf der Variablen-Seite.
Job-Ausführungs-ID
Das Standardverhalten von PowerShell Universal besteht darin, Jobs anhand einer automatisch inkrementierenden, auf int64 basierenden ID zu verfolgen. Jedes Mal, wenn ein neuer Job ausgeführt wird, ist die ID des Jobs um eins höher als die des letzten. Aufgrund dieses Verhaltens ist es einfach, andere Job-IDs zu erraten, was potenziell zu einem Sicherheitsrisiko führen kann.
Um dieses Problem zu vermeiden, können Sie die experimentelle Funktion JobRunID aktivieren. Obwohl das System intern weiterhin Jobs mit aufsteigenden numerischen IDs erstellt, können Sie nicht anhand dieser IDs auf Jobs zugreifen. Stattdessen wird ein neues Feld namens RunID verwendet. RunID verwendet für Suchvorgänge eine GUID anstelle einer ID. Dies verringert die Möglichkeit für einen Angreifer, eine Job-ID zu erraten, erheblich.
Sie müssen diese Funktion aktivieren, um sie zu verwenden.
API
Zuletzt aktualisiert
War das hilfreich?