Partager via


New-WinEvent

Crée un événement Windows pour le fournisseur d’événements spécifié.

Syntaxe

New-WinEvent
   [-ProviderName] <String>
   [-Id] <Int32>
   [-Version <Byte>]
   [[-Payload] <Object[]>]
   [<CommonParameters>]

Description

Cette applet de commande est disponible uniquement sur la plateforme Windows.

L’applet de commande New-WinEvent crée un événement Suivi d’événements pour Windows (ETW) pour un fournisseur d’événements. Vous pouvez utiliser cette applet de commande pour ajouter des événements aux canaux ETW à partir de PowerShell.

Exemples

Exemple 1 - Créer un événement

New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")

Cette commande utilise l’applet de commande New-WinEvent pour créer l’événement 45090 pour le fournisseur Microsoft-Windows-PowerShell.

Exemple 2 : Obtenir le modèle pour un événement

Dans cet exemple, Get-WinEvent est utilisé pour obtenir le modèle pour l’ID d’événement 8007 à partir du fournisseur d’événements de stratégie de groupe. Notez que l’événement a deux formats.

Dans la version 0, le champ IsMachine est une valeur booléenne. Dans la version 1, le champ IsMachine est une valeur entière non signée.

(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Where-Object Id -eq 8007

Id          : 8007
Version     : 0
LogLink     : System.Diagnostics.Eventing.Reader.EventLogLink
Level       : System.Diagnostics.Eventing.Reader.EventLevel
Opcode      : System.Diagnostics.Eventing.Reader.EventOpcode
Task        : System.Diagnostics.Eventing.Reader.EventTask
Keywords    : {}
Template    : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
                <data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
                <data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
                <data name="IsMachine" inType="win:Boolean" outType="xs:boolean"/>
                <data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
              </template>

Description : Completed periodic policy processing for user %3 in %1 seconds.

Id          : 8007
Version     : 1
LogLink     : System.Diagnostics.Eventing.Reader.EventLogLink
Level       : System.Diagnostics.Eventing.Reader.EventLevel
Opcode      : System.Diagnostics.Eventing.Reader.EventOpcode
Task        : System.Diagnostics.Eventing.Reader.EventTask
Keywords    : {}
Template    : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
                <data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
                <data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
                <data name="IsMachine" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
              </template>

Description : Completed periodic policy processing for user %3 in %1 seconds.

La propriété Description contient le message qui est écrit dans le journal des événements. La valeur %3 et %1 sont des espaces réservés pour les valeurs passées dans le modèle. La chaîne %3 est remplacée par la valeur passée au champ PrincipalSamName. La chaîne %1 est remplacée par la valeur passée au champ PolicyElaspedTimeInSeconds.

Exemple 3 - Créer un événement à l’aide d’un modèle versionné

Cet exemple montre comment créer un événement à l’aide d’une version de modèle spécifique.

$Payload = @(300, [uint32]'0x8001011f', $env:USERNAME, 0, 1)
New-WinEvent -ProviderName Microsoft-Windows-GroupPolicy -Id 8007 -Version 1 -Payload $Payload
Get-winEvent -ProviderName Microsoft-Windows-GroupPolicy -MaxEvents 1

ProviderName: Microsoft-Windows-GroupPolicy

TimeCreated            Id LevelDisplayName Message
-----------            -- ---------------- -------
5/4/2022 8:40:24 AM  8007 Information      Completed periodic policy processing for user User1 in 300 seconds

Si les valeurs de la charge utile ne correspondent pas aux types du modèle, l’événement est journalisé, mais la charge utile contient une erreur.

Paramètres

-Id

Spécifie un ID d’événement inscrit dans le fournisseur d’événements.

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

-Payload

La charge utile est un tableau de valeurs passées en tant qu’arguments positionnels au modèle d’événement. Les valeurs sont insérées dans le modèle pour construire le message de l’événement. Les événements peuvent avoir plusieurs versions de modèle qui utilisent différents formats.

Si les valeurs de la charge utile ne correspondent pas aux types du modèle, l’événement est journalisé, mais la charge utile contient une erreur.

Type:Object[]
Position:2
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ProviderName

Spécifie le fournisseur d’événements qui écrit l’événement dans un journal des événements, tel que « Microsoft-Windows-PowerShell ». Un fournisseur d’événements ETW est une entité logique qui écrit des événements dans des sessions ETW.

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

-Version

Spécifie le numéro de version de l’événement. PowerShell convertit le nombre en type d’octet requis. La valeur spécifie la version de l’événement lorsque différentes versions du même événement sont définies.

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

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne aucune sortie.

Notes

Une fois que le fournisseur écrit l’événement dans un journal des événements, vous pouvez utiliser l’applet de commande Get-WinEvent pour obtenir l’événement à partir du journal des événements.