Freigeben über


Wait-Event

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

Syntax

Default (Standard)

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

Beschreibung

Das cmdlet Wait-Event 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:

  • mithilfe des Parameters Aktion des Abonnements für ein Ereignis
  • Warten auf die Rückgabe eines Ereignisses und anschließende Reaktion mit einer Aktion

Beispiele

Beispiel 1: Warten auf das nächste Ereignis

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

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 ein Quellkennzeichen von ProcessStarted hat.

Wait-Event -SourceIdentifier "ProcessStarted"

Beispiel 3: Warten auf ein Ereignis nach Ablauf des Timers

In diesem Beispiel wird das Wait-Event Cmdlet verwendet, um auf ein Ereignis 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 ProcessStartedverfügt. Wenn die angegebene Zeit abläuft, endet die Wartezeit.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parameter

-SourceIdentifier

Gibt die Quellenkennung an, unter der dieses Cmdlet auf Ereignisse wartet. Standardmäßig wartet Wait-Event auf ein beliebiges Ereignis.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Timeout

Gibt die maximale Zeit in Sekunden an, die Wait-Event wartet, bis das Ereignis eintritt. Der Standardwert -1 wartet unbegrenzt. Die Zeitmessung beginnt, wenn Sie den Befehl Wait-Event einreichen.

Wenn die angegebene Zeit überschritten wird, endet die Wartezeit, und die Eingabeaufforderung erscheint wieder, auch wenn das Ereignis nicht ausgelöst wurde. Es wird keine Fehlermeldung angezeigt.

Parametereigenschaften

Typ:Int32
Standardwert:-1
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:TimeoutSec

Parametersätze

(All)
Position:Named
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

String

Ausgaben

PSEventArgs

Hinweise

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