New-Event
Crée un événement.
Syntaxe
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Description
L’applet de commande New-Event crée un événement personnalisé.
Vous pouvez utiliser des événements personnalisés pour informer les utilisateurs des modifications d’état dans votre programme et toute modification que votre programme peut détecter, y compris les conditions matérielles ou système, l’état de l’application, l’état du disque, l’état du réseau ou l’achèvement d’un travail en arrière-plan.
Les événements personnalisés sont automatiquement ajoutés à la file d’attente d’événements dans votre session chaque fois qu’ils sont déclenchés ; vous n’avez pas besoin de vous y abonner. Toutefois, si vous souhaitez transférer un événement à la session locale ou spécifier une action pour répondre à l’événement, utilisez l’applet de commande Register-EngineEvent pour vous abonner à l’événement personnalisé.
Lorsque vous vous abonnez à un événement personnalisé, l’abonné à l’événement est ajouté à votre session. Si vous annulez l’abonnement aux événements à l’aide de l’applet de commande Unregister-Event, l’abonné à l’événement et l’événement personnalisé sont supprimés de la session. Si vous ne vous abonnez pas à l’événement personnalisé, pour supprimer l’événement, vous devez modifier les conditions du programme ou fermer la session Windows PowerShell.
Exemples
Exemple 1 : Créer un événement dans la file d’attente d’événements
PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"
Cette commande crée un événement dans la file d’attente des événements Windows PowerShell. Il utilise un objet Windows.Timer pour envoyer l’événement.
Exemple 2 : Déclencher un événement en réponse à un autre événement
PS C:\> function Enable-ProcessCreationEvent
{
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
$Identifier = "WMI.ProcessCreated"
Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
{
[void] (New-Event -SourceID "PowerShell.ProcessCreated" -Sender $Args[0] -EventArguments $Args[1].SourceEventArgs.NewEvent.TargetInstance)
}
}
Cet exemple de fonction utilise la cmdlet New-Event pour déclencher un événement en réponse à un autre événement. La commande utilise l’applet de commande Register-ObjectEvent pour s’abonner à l’événement WMI (Windows Management Instrumentation) déclenché lors de la création d’un nouveau processus. La commande utilise le paramètre Action de l’applet de commande pour appeler l’applet de commande New-Event, qui crée l’événement.
Étant donné que les événements qui nouveau-événement sont automatiquement ajoutés à la file d’attente Windows PowerShellevent, vous n’avez pas besoin de vous inscrire à cet événement.
Paramètres
-EventArguments
Spécifie un objet qui contient des options pour l’événement.
Type: | PSObject[] |
Position: | 2 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-MessageData
Spécifie des données supplémentaires associées à l’événement. La valeur de ce paramètre apparaît dans la propriété MessageData de l’objet événement.
Type: | PSObject |
Position: | 3 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Sender
Spécifie l’objet qui déclenche l’événement. La valeur par défaut est le moteur Windows PowerShell.
Type: | PSObject |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-SourceIdentifier
Spécifie un nom pour le nouvel événement. Ce paramètre est obligatoire et doit être unique dans la session.
La valeur de ce paramètre apparaît dans la propriété SourceIdentifier des événements.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
None
Vous ne pouvez pas diriger l’entrée vers cette applet de commande.
Sorties
Notes
Le nouvel événement personnalisé, l’abonnement 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é.