Sdílet prostřednictvím


New-WinEvent

Vytvoří novou událost systému Windows pro zadaného zprostředkovatele událostí.

Syntaxe

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

Description

Tato rutina je dostupná jenom na platformě Windows.

Rutina New-WinEvent vytvoří událost Trasování událostí pro Windows (ETW) pro zprostředkovatele událostí. Tuto rutinu můžete použít k přidání událostí do kanálů Trasování událostí z PowerShellu.

Příklady

Příklad 1 – Vytvoření nové události

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

Tento příkaz používá rutinu New-WinEvent k vytvoření události 45090 pro zprostředkovatele MicrosoftWindows-PowerShell.

Příklad 2 – Získání šablony pro událost

V tomto příkladu se Get-WinEvent používá k získání šablony pro událost s ID 8007 od poskytovatele událostí zásad skupiny. Všimněte si, že událost má dva formáty.

Ve verzi 0 je pole IsMachine logická hodnota. Ve verzi 1 je pole IsMachine celočíselnou hodnotou bez znaménka.

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

Vlastnost popis popis obsahuje zprávu, která se zapíše do protokolu událostí. Hodnota %3 a %1 jsou zástupné symboly hodnot předaných do šablony. Řetězec %3 se nahradí hodnotou předanou do pole PrincipalSamName. Řetězec %1 se nahradí hodnotou předanou poli PolicyElaspedTimeInSeconds.

Příklad 3 – Vytvoření nové události pomocí šablony s verzí

Tento příklad ukazuje, jak vytvořit událost pomocí konkrétní verze šablony.

$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

Pokud hodnoty v datové části neodpovídají typům v šabloně, událost se zaprotokoluje, ale datová část obsahuje chybu.

Parametry

-Id

Určuje ID události zaregistrované ve zprostředkovateli událostí.

Typ:Int32
Position:1
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Payload

Datová část je pole hodnot předaných do šablony události jako poziční argumenty. Hodnoty se vloží do šablony pro vytvoření zprávy pro událost. Události můžou mít více verzí šablon, které používají různé formáty.

Pokud hodnoty v datové části neodpovídají typům v šabloně, událost se zaprotokoluje, ale datová část obsahuje chybu.

Typ:Object[]
Position:2
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ProviderName

Určuje zprostředkovatele událostí, který zapisuje událost do protokolu událostí, například Microsoft-Windows-PowerShell. Zprostředkovatel událostí pro Windows je logická entita, která zapisuje události do relací Trasování událostí pro Windows.

Typ:String
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Version

Určuje číslo verze události. PowerShell převede číslo na požadovaný typ bajtu. Hodnota určuje verzi události, pokud jsou definovány různé verze stejné události.

Typ:Byte
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

None

Do této rutiny nemůžete roušit objekty.

Výstupy

None

Tato rutina nevrátí žádný výstup.

Poznámky

Jakmile zprostředkovatel zapíše událost do protokolu událostí, můžete k získání události z protokolu událostí použít rutinu Get-WinEvent.