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.
Typ: | Int32 |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | Object[] |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | Byte |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.