Wait-Process
Wartet, bis die Prozesse beendet werden, bevor weitere Eingaben akzeptiert werden.
Syntax
Name (Standard)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[-Any]
[-PassThru]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet funktioniert unter Linux oder macOS nicht.
Das Wait-Process Cmdlet wartet auf das Beenden eines oder mehrerer ausgeführter Prozesse, bevor die Eingabe akzeptiert wird. In der PowerShell-Konsole unterdrückt dieses Cmdlet die Eingabeaufforderung, bis die Prozesse beendet werden. Sie können einen Prozess durch Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt an Wait-Processdas Objekt weiterzuleitungen.
Wait-Process funktioniert nur bei Prozessen, die auf dem lokalen Computer ausgeführt werden.
Beispiele
Beispiel 1: Beenden eines Prozesses und Warten
In diesem Beispiel wird der Editor-Prozess beendet und wartet dann, bis der Prozess beendet wird, bevor er mit dem nächsten Befehl fortgesetzt wird.
$nid = (Get-Process notepad).Id
Stop-Process -Id $nid
Wait-Process -Id $nid
Das Get-Process Cmdlet ruft die Prozess-ID des Editor-Prozesses ab und speichert sie in der $nid Variablen.
Stop-Process beendet den Prozess mit der in $nid.
Wait-Process wartet, bis der Editorprozess beendet wird.
Beispiel 2: Angeben eines Prozesses
Dieses Beispiel zeigt drei verschiedene Methoden zum Angeben eines Prozesses für Wait-Process. Der erste Befehl ruft den Editorprozess ab und speichert ihn in der $p Variablen. Der zweite Befehl verwendet den Parameter "ID ", der dritte Befehl verwendet den Parameter "Name ", und der vierte Befehl verwendet den InputObject-Parameter .
$p = Get-Process notepad
Wait-Process -Id $p.Id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
Diese Befehle haben dieselben Ergebnisse und können austauschbar verwendet werden.
Beispiel 3: Warten auf Prozesse für eine bestimmte Zeit
In diesem Beispiel wartet Wait-Process 30 Sekunden, bis die Prozesse Outlook und Winword beendet werden. Wenn beide Prozesse nicht beendet werden, zeigt das Cmdlet einen nicht beendeten Fehler und die Eingabeaufforderung an.
Wait-Process -Name outlook, winword -Timeout 30
Parameter
-Any
Wenn mehrere Prozesse übergeben Wait-Processwerden, wartet das Cmdlet, bis alle Prozesse beendet werden, bevor sie zurückgegeben werden. Mit diesem Parameter gibt das Cmdlet zurück, wenn eines der Prozesse beendet wird. Die verbleibenden Prozesse werden weiterhin ausgeführt.
Dieser Parameter wurde in PowerShell 7.4 hinzugefügt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Id
Gibt die Prozess-IDs der Prozesse an. Um mehrere IDs anzugeben, verwenden Sie Kommas, um die IDs zu trennen.
Um die PID eines Prozesses zu finden, geben Sie folgendes ein Get-Process.
Parametereigenschaften
| Typ: | Int32[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PID, Prozess-ID |
Parametersätze
Id
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt die Prozesse durch Senden von Prozessobjekten an. Geben Sie eine Variable ein, die die Prozessobjekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Prozessobjekte abruft, z. B. das Get-Process Cmdlet.
Parametereigenschaften
| Typ: | Process[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
InputObject
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Name
Gibt die Prozessnamen der Prozesse an. Um mehrere Namen anzugeben, verwenden Sie Kommas, um die Namen zu trennen. Wildcardzeichen werden nicht unterstützt.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | ProcessName |
Parametersätze
Name
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-PassThru
Standardmäßig gibt dieses Cmdlet nichts aus. Mit diesem Parameter gibt das Cmdlet Objekte zurück, die die Prozesse darstellen, die gewartet wurden.
Dieser Parameter wurde in PowerShell 7.4 hinzugefügt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Timeout
Gibt die maximale Zeit in Sekunden an, die dieses Cmdlet auf das Beenden der angegebenen Prozesse wartet. Wenn dieses Intervall abläuft, zeigt der Befehl einen nicht beendeten Fehler an, der die noch ausgeführten Prozesse auflistet und die Wartezeit beendet. Standardmäßig ist kein Timeout vorhanden.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | TimeoutSec |
Parametersätze
(All)
| Position: | 1 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Process
Sie können ein Prozessobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Process
Das Cmdlet gibt Prozessobjekte zurück, wenn Sie den PassThru-Parameter verwenden.
Hinweise
Dieses Cmdlet verwendet das Exited-Ereignis der System.Diagnostics.Process-Klasse .
Im Gegensatz dazu
Start-Process -WaitWait-Processwartet nur auf die identifizierten Prozesse.Start-Process -Waitwartet, bis die Prozessstruktur (der Prozess und alle untergeordneten Elemente) vor dem Zurückgeben des Steuerelements beendet werden.