Udostępnij za pośrednictwem


New-WinEvent

Tworzy nowe zdarzenie systemu Windows dla określonego dostawcy zdarzeń.

Składnia

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

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie New-WinEvent cmdlet tworzy zdarzenie śledzenia zdarzeń systemu Windows (ETW) dla dostawcy zdarzeń. To polecenie cmdlet służy do dodawania zdarzeń do kanałów ETW z programu PowerShell.

Przykłady

Przykład 1 — tworzenie nowego zdarzenia

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

To polecenie używa New-WinEvent polecenia cmdlet do utworzenia zdarzenia 45090 dla dostawcy programu Microsoft-Windows-PowerShell.

Przykład 2 — pobieranie szablonu zdarzenia

W tym przykładzie Get-WinEvent użyto szablonu dla zdarzenia o identyfikatorze 8007 od dostawcy zdarzeń zasad grupy. Zwróć uwagę, że zdarzenie ma dwa formaty.

W wersji 0 pole IsMachine jest wartością logiczną. W wersji 1 pole IsMachine jest niepodpisaną wartością całkowitą.

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

Właściwość Description zawiera komunikat, który jest zapisywany w dzienniku zdarzeń. Wartości %3 i %1 są symbolami zastępczymi wartości przekazanych do szablonu. Ciąg %3 jest zastępowany wartością przekazaną do pola PrincipalSamName . Ciąg %1 jest zastępowany wartością przekazaną do pola PolicyElaspedTimeInSeconds .

Przykład 3 — tworzenie nowego zdarzenia przy użyciu szablonu w wersji

W tym przykładzie pokazano, jak utworzyć zdarzenie przy użyciu określonej wersji szablonu.

$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

Jeśli wartości w ładunku nie są zgodne z typami w szablonie, zdarzenie jest rejestrowane, ale ładunek zawiera błąd.

Parametry

-Id

Określa identyfikator zdarzenia, który jest zarejestrowany w dostawcy zdarzeń.

Typ:Int32
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Payload

Ładunek to tablica wartości przekazywanych jako argumenty pozycyjne do szablonu zdarzenia. Wartości są wstawiane do szablonu w celu skonstruowania komunikatu dla zdarzenia. Zdarzenia mogą mieć wiele wersji szablonów, które używają różnych formatów.

Jeśli wartości w ładunku nie są zgodne z typami w szablonie, zdarzenie jest rejestrowane, ale ładunek zawiera błąd.

Typ:Object[]
Position:2
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ProviderName

Określa dostawcę zdarzeń, który zapisuje zdarzenie w dzienniku zdarzeń, na przykład "Microsoft-Windows-PowerShell". Dostawca zdarzeń ETW to jednostka logiczna, która zapisuje zdarzenia w sesjach ETW.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Version

Określa numer wersji zdarzenia. Program PowerShell konwertuje liczbę na wymagany typ bajtu. Wartość określa wersję zdarzenia, gdy zdefiniowano różne wersje tego samego zdarzenia.

Typ:Byte
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.

Uwagi

Po zapisaniu zdarzenia przez dostawcę do dziennika zdarzeń możesz użyć Get-WinEvent polecenia cmdlet , aby pobrać zdarzenie z dziennika zdarzeń.