Partager via


Wait-Event

Attend qu'un événement particulier soit déclenché avant de poursuivre son exécution.

Syntax

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

Description

L’applet Wait-Event de commande 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 quand l'événement est détecté. Pour annuler l’attente, appuyez sur CTRL+C.

Cette fonctionnalité fournit une alternative à l'interrogation d'un événement. Il vous permet également de déterminer la réponse à un événement de deux manières différentes :

  • à l’aide du paramètre Action de l’abonnement aux événements
  • en attendant le retour d’un événement, puis la réponse avec une action

Exemples

Exemple 1 : Attendre l’événement suivant

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

Wait-Event

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

Cet exemple attend l’événement suivant qui est 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 Wait-Event de commande pour attendre un événement du minuteur sur un minuteur défini pour 2 000 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’attente spécifié

Cet exemple attend jusqu’à 90 secondes pour l’événement suivant qui est déclenché et qui a un identificateur source de ProcessStarted. Si le délai spécifié 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 n’importe quel événement.

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

-Timeout

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

Si la durée spécifiée est dépassée, l'attente se termine et l'invite de commandes réapparaît, même si l'événement n'a pas été déclenché. Aucun message d'erreur ne s'affiche.

Type:Int32
Aliases:TimeoutSec
Position:Named
Default value:-1
Required:False
Accept pipeline input:False
Accept wildcard characters: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 cette session, la file d'attente d'événements est ignorée et l'abonnement aux événements est annulé.