Freigeben über


Wait-Process

Wartet, bis die Prozesse beendet werden, bevor weitere Eingaben akzeptiert werden.

Syntax

Name (Standardwert)

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 Cmdlet Wait-Process 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 nach Prozessname oder Prozess-ID (PID) angeben oder ein Prozessobjekt an Wait-Processsenden.

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 Cmdlet Get-Process ruft die Prozess-ID des Editor- Prozesses ab und speichert sie in der variablen $nid. Stop-Process beendet den Prozess mit der in $nidgespeicherten ID. Wait-Process wartet, bis der Editor Prozess beendet wird.

Beispiel 2: Angeben eines Prozesses

In diesem Beispiel werden drei verschiedene Methoden zum Angeben eines Prozesses zum Wait-Processgezeigt. Der erste Befehl ruft den Editorprozess ab und speichert ihn in der variablen $p. Der zweite Befehl verwendet den Parameter Id, der dritte Befehl verwendet den Parameter Name, und der vierte Befehl verwendet den parameter InputObject.

$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 Outlook- und Winword Prozesse 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 an Wait-Processübergeben werden, 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. Geben Sie Get-Processein, um die PID eines Prozesses zu finden.

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 Cmdlet Get-Process.

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 parameter PassThru verwenden.

Hinweise

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

  • Im Gegensatz zu Start-Process -Waitwartet Wait-Process nur auf die identifizierten Prozesse. Start-Process -Wait wartet, bis die Prozessstruktur (der Prozess und alle untergeordneten Elemente) beendet werden, bevor die Steuerung zurückgegeben wird.