Freigeben über


Wait-Event

Wartet, bis ein bestimmtes Ereignis ausgelöst wird, bevor die Ausführung fortgesetzt wird.

Syntax

Wait-Event
    [[-SourceIdentifier] <String>]
    [-Timeout <Int32>]
    [<CommonParameters>]

Beschreibung

Das Wait-Event Cmdlet hält die Ausführung eines Skripts oder einer Funktion an, bis ein bestimmtes Ereignis ausgelöst wird. Die Ausführung wird fortgesetzt, wenn das Ereignis erkannt wird. Um die Wartezeit abzubrechen, drücken Sie STRG+C.

Diese Funktion bietet eine Alternative zum Abruf für ein Ereignis. Außerdem können Sie die Antwort auf ein Ereignis auf zwei verschiedene Arten bestimmen:

  • verwenden des Aktionsparameters des Ereignisabonnements
  • warten, bis ein Ereignis zurückgegeben wird und dann mit einer Aktion reagiert

Beispiele

Beispiel 1: Warten auf das nächste Ereignis

In diesem Beispiel wird auf das nächste ausgelöste Ereignis gewartet.

Wait-Event

Beispiel 2: Warten auf ein Ereignis mit einem angegebenen Quellbezeichner

In diesem Beispiel wird auf das nächste ausgelöste Ereignis gewartet, das über einen Quellbezeichner von ProcessStarted verfügt.

Wait-Event -SourceIdentifier "ProcessStarted"

Beispiel 3: Warten auf ein verstrichenes Zeitgeberereignis

In diesem Beispiel wird das Wait-Event Cmdlet verwendet, um auf ein Timerereignis für einen Timer zu warten, der für 2000 Millisekunden festgelegt ist.

$Timer = New-Object Timers.Timer
$objectEventArgs = @{
    InputObject = $Timer
    EventName = 'Elapsed'
    SourceIdentifier = 'Timer.Elapsed'
}
Register-ObjectEvent @objectEventArgs
$Timer.Interval = 2000
$Timer.Autoreset = $False
$Timer.Enabled = $True
Wait-Event Timer.Elapsed

ComputerName     :
RunspaceId       : bb560b14-ff43-48d4-b801-5adc31bbc6fb
EventIdentifier  : 1
Sender           : System.Timers.Timer
SourceEventArgs  : System.Timers.ElapsedEventArgs
SourceArgs       : {System.Timers.Timer, System.Timers.ElapsedEventArgs}
SourceIdentifier : Timer.Elapsed
TimeGenerated    : 4/23/2020 2:30:37 PM
MessageData      :

Beispiel 4: Warten auf ein Ereignis nach einem angegebenen Timeout

In diesem Beispiel wird bis zu 90 Sekunden auf das nächste ausgelöste Ereignis gewartet, das über einen Quellbezeichner von ProcessStarted verfügt. Wenn die angegebene Zeit abgelaufen ist, wird der Wartevorgang beendet.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parameter

-SourceIdentifier

Gibt den Quellbezeichner an, auf den dieses Cmdlet auf Ereignisse wartet. Wartet standardmäßig Wait-Event auf ein beliebiges Ereignis.

Typ:String
Position:0
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Timeout

Gibt die maximale Zeit in Sekunden an, die Wait-Event auf das Ereignis wartet. Der Standardwert -1 wartet unbegrenzt. Die Anzeigedauer beginnt, wenn Sie den Wait-Event Befehl übermitteln.

Wenn die angegebene Zeit überschritten ist, wird der Wartevorgang beendet und die Befehlseingabeaufforderung wieder angezeigt, auch wenn das Ereignis nicht ausgelöst wurde. Es wird keine Fehlermeldung angezeigt.

Typ:Int32
Aliase:TimeoutSec
Position:Named
Standardwert:-1
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

Ausgaben

PSEventArgs

Hinweise

Ereignisse, Ereignisabonnements und die Ereigniswarteschlange sind nur in der aktuellen Sitzung vorhanden. Wenn Sie die aktuelle Sitzung schließen, wird die Ereigniswarteschlange verworfen, und das Ereignisabonnement wird abgebrochen.