New-WinEvent

Es erstellt ein neues Windows-Ereignis für den angegebenen Ereignisanbieter.

Syntax

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

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das New-WinEvent Cmdlet erstellt ein Ereignisablaufverfolgungsereignis für Windows (ETW) für einen Ereignisanbieter. Mit diesem Cmdlet können Sie Über PowerShell Ereignisse zu ETW-Kanälen hinzufügen.

Beispiele

Beispiel 1 : Erstellen eines neuen Ereignisses

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

Dieser Befehl verwendet das New-WinEvent Cmdlet zum Erstellen von Ereignis 45090 für den Microsoft-Windows-PowerShell-Anbieter.

Beispiel 2 – Abrufen der Vorlage für ein Ereignis

In diesem Beispiel wird verwendet, Get-WinEvent um die Vorlage für die Ereignis-ID 8007 vom Gruppenrichtlinienereignisanbieter abzurufen. Beachten Sie, dass das Ereignis zwei Formate aufweist.

In Version 0 ist das IsMachine-Feld ein boolescher Wert. In Version 1 ist das IsMachine-Feld ein ganzzahliger Wert ohne Vorzeichen.

(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.

Die Description-Eigenschaft enthält die Nachricht, die in das Ereignisprotokoll geschrieben wird. Der Wert und %1 der %3 Wert sind Platzhalter für die Werte, die an die Vorlage übergeben werden. Die %3 Zeichenfolge wird durch den an das PrincipalSamName-Feld übergebenen Wert ersetzt. Die %1 Zeichenfolge wird durch den Wert ersetzt, der an das Feld "PolicyElaspedTimeInSeconds " übergeben wird.

Beispiel 3 : Erstellen eines neuen Ereignisses mithilfe einer versionsbasierten Vorlage

In diesem Beispiel wird gezeigt, wie Sie ein Ereignis mit einer bestimmten Vorlagenversion erstellen.

$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

Wenn die Werte in der Nutzlast nicht mit den Typen in der Vorlage übereinstimmen, wird das Ereignis protokolliert, die Nutzlast enthält jedoch einen Fehler.

Parameter

-Id

Gibt eine Ereignis-ID an, die im Ereignisanbieter registriert ist.

Type:Int32
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Payload

Die Nutzlast ist ein Array von Werten, die als Positionsargumente an die Ereignisvorlage übergeben werden. Die Werte werden in die Vorlage eingefügt, um die Nachricht für das Ereignis zu erstellen. Ereignisse können über mehrere Vorlagenversionen verfügen, die unterschiedliche Formate verwenden.

Wenn die Werte in der Nutzlast nicht mit den Typen in der Vorlage übereinstimmen, wird das Ereignis protokolliert, die Nutzlast enthält jedoch einen Fehler.

Type:Object[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProviderName

Gibt den Ereignisanbieter an, der das Ereignis in ein Ereignisprotokoll schreibt, z. B. „Microsoft-Windows-PowerShell“. Ein ETW-Ereignisanbieter ist eine logische Entität, die Ereignisse in ETW-Sitzungen schreibt.

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

-Version

Gibt die Versionsnummer des Ereignisses an. PowerShell konvertiert die Zahl in den erforderlichen Bytetyp. Der Wert gibt die Version des Ereignisses an, wenn unterschiedliche Versionen desselben Ereignisses definiert sind.

Type:Byte
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.

Hinweise

Nachdem der Anbieter das Ereignis in ein Ereignisprotokoll geschrieben hat, können Sie das Get-WinEvent Cmdlet verwenden, um das Ereignis aus dem Ereignisprotokoll abzurufen.