Partager via


Wait-Event

Attend qu’un événement particulier soit déclenché avant de continuer à s’exécuter.

Syntaxe

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

Description

L’applet de commande Wait-Event interrompt l’exécution d’un script ou d’une fonction jusqu’à ce qu’un événement particulier soit déclenché. L’exécution reprend lorsque l’événement est détecté. Pour annuler l’attente, appuyez sur Ctrl+C.

Cette fonctionnalité offre une alternative à l’interrogation d’un événement. Il vous permet également de déterminer la réponse à un événement de deux façons différentes :

  • utilisation du paramètre Action de l’abonnement aux événements
  • en attendant qu’un événement retourne, puis réponde avec une action

Exemples

Exemple 1 : Attendre l’événement suivant

Cet exemple attend l’événement suivant déclenché.

Wait-Event

Exemple 2 : Attendre un événement avec un identificateur source spécifié

Cet exemple attend l’événement suivant déclenché et qui a un identificateur source de ProcessStarted.

Wait-Event -SourceIdentifier "ProcessStarted"

Exemple 3 : Attendre un événement écoulé du minuteur

Cet exemple utilise l’applet de commande Wait-Event pour attendre un événement de minuteur sur un minuteur défini pour 2000 millisecondes.

$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      :

Exemple 4 : Attendre un événement après un délai d’expiration spécifié

Cet exemple attend jusqu’à 90 secondes pour l’événement suivant déclenché et qui a un identificateur source de ProcessStarted. Si l’heure spécifiée expire, l’attente se termine.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Paramètres

-SourceIdentifier

Spécifie l’identificateur source que cette applet de commande attend pour les événements. Par défaut, Wait-Event attend tout événement.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Timeout

Spécifie la durée maximale, en secondes, qui Wait-Event attend que l’événement se produise. La valeur par défaut , -1, attend indéfiniment. Le minutage commence lorsque vous envoyez la commande Wait-Event.

Si l’heure spécifiée est dépassée, l’attente se termine et l’invite de commandes retourne, même si l’événement n’a pas été déclenché. Aucun message d’erreur n’est affiché.

Type:Int32
Alias:TimeoutSec
Position:Named
Valeur par défaut:-1
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

String

Sorties

PSEventArgs

Notes

Les événements, les abonnements aux événements et la file d’attente d’événements existent uniquement dans la session active. Si vous fermez la session active, la file d’attente d’événements est ignorée et l’abonnement à l’événement est annulé.