Share via


Wait-Process

Wartet, bis die Prozesse beendet wurden, bevor weitere Eingaben angenommen werden.

Syntax

Wait-Process
    [-Name] <String[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]
Wait-Process
    [-Id] <Int32[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]
Wait-Process
    [[-Timeout] <Int32>]
    -InputObject <Process[]>
    [<CommonParameters>]

Beschreibung

Dieses Cmdlet funktioniert nicht unter Linux oder macOS.

Das Wait-Process Cmdlet wartet, bis ein oder mehrere ausgeführte Prozesse beendet werden, 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 nach Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt an übergeben Wait-Process.

Wait-Process funktioniert nur für Prozesse, 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 dann gewartet, 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 gespeicherten $nidID. Wait-Process wartet, bis der Editor-Prozess beendet wurde.

Beispiel 2: Angeben eines Prozesses

Dieses Beispiel zeigt drei verschiedene Methoden zum Angeben eines Prozesses für Wait-Process. Der erste Befehl ruft den Editor-Prozess ab und speichert ihn in der $p Variablen. Der zweite Befehl verwendet den Id-Parameter , der dritte Befehl den Parameter Name und der vierte Befehl den InputObject-Parameter .

$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p

Die Ergebnisse dieser Befehle sind identisch und austauschbar.

Beispiel 3: Warten auf Prozesse für eine bestimmte Zeit

In diesem Beispiel wartet 30 Sekunden, Wait-Process bis die Outlook - und Winword-Prozesse beendet werden. Wenn beide Prozesse nicht beendet werden, zeigt das Cmdlet einen Fehler ohne Abbruch sowie die Eingabeaufforderung an.

Wait-Process -Name outlook, winword -Timeout 30

Parameter

-Id

Gibt die Prozess-IDs der Prozesse an. Wenn Sie mehrere IDs angeben, trennen Sie diese durch Kommas. Um die PID eines Prozesses zu suchen, geben Sie ein Get-Process.

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 wie das Get-Process Cmdlet abruft.

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt die Prozessnamen der Prozesse an. Wenn Sie mehrere Namen angeben, trennen Sie diese durch Kommas. Platzhalterzeichen werden nicht unterstützt.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Timeout

Gibt die maximale Zeit in Sekunden an, die dieses Cmdlet wartet, bis die angegebenen Prozesse beendet werden. Wenn dieses Intervall abläuft, zeigt der Befehl einen Fehler ohne Abbruch an, bei dem die noch ausgeführten Prozesse aufgeführt werden, und beendet den Wartevorgang. Standardmäßig gibt es kein Timeout.

Type:Int32
Aliases:TimeoutSec
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

Process

Sie können ein Prozessobjekt an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet generiert keine Ausgabe.

Hinweise

  • Dieses Cmdlet verwendet die WaitForExit-Methode der System.Diagnostics.Process-Klasse .

  • Wait-Process Im Gegensatz wird Start-Process -Waitnur auf die identifizierten Prozesse gewartet. Start-Process -Wait wartet, bis die Prozessstruktur (der Prozess und alle zugehörigen Nachfolger) beendet wird, bevor die Steuerung zurückgegeben wird.