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
- attendre le retour d’un événement, puis répondre 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 de source spécifié
Cet exemple attend l’événement suivant qui est déclenché et dont l’identificateur source est ProcessStarted.
Wait-Event -SourceIdentifier "ProcessStarted"
Exemple 3 : Attendre un événement de minuteur écoulé
Cet exemple utilise l’applet Wait-Event
de commande pour attendre un événement de minuteur sur un minuteur défini sur 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’expiration spécifié
Cet exemple montre comment attendre jusqu’à 90 secondes pour l’événement suivant qui est déclenché et dont l’identificateur source est 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 Wait-Event
attend que 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
Sorties
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é.