Поделиться через


New-WinEvent

Создает новое событие Windows для указанного поставщика событий.

Синтаксис

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

Описание

Этот командлет доступен только на платформе Windows.

Командлет New-WinEvent создает событие трассировки событий для Windows (ETW) для поставщика событий. Этот командлет можно использовать для добавления событий в каналы ETW из PowerShell.

Примеры

Пример 1. Создание события

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

Эта команда использует командлет New-WinEvent для создания события 45090 для поставщикаWindows-PowerShell Майкрософт.

Пример 2. Получение шаблона для события

В этом примере Get-WinEvent используется для получения шаблона для идентификатора события 8007 от поставщика событий групповой политики. Обратите внимание, что событие имеет два формата.

В версии 0 поле IsMachine является логическим значением. В версии 1 поле IsMachine является целочисленным значением без знака.

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

Свойство описания содержит сообщение, которое записывается в журнал событий. Значения %3 и %1 являются заполнителями для значений, переданных в шаблон. Строка %3 заменяется значением, переданным в поле PrincipalSamName. Строка %1 заменяется значением, переданным в поле PolicyElaspedTimeInSeconds.

Пример 3. Создание нового события с помощью шаблона с версиями

В этом примере показано, как создать событие с помощью определенной версии шаблона.

$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

Если значения полезных данных не соответствуют типам в шаблоне, событие регистрируется, но полезные данные содержат ошибку.

Параметры

-Id

Указывает идентификатор события, зарегистрированный в поставщике событий.

Тип:Int32
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Payload

Полезные данные — это массив значений, передаваемых в качестве позиционных аргументов в шаблон событий. Значения вставляются в шаблон, чтобы создать сообщение для события. События могут иметь несколько версий шаблонов, использующих разные форматы.

Если значения полезных данных не соответствуют типам в шаблоне, событие регистрируется, но полезные данные содержат ошибку.

Тип:Object[]
Position:2
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ProviderName

Указывает поставщик событий, который записывает событие в журнал событий, например Microsoft-Windows-PowerShell. Поставщик событий ETW — это логическая сущность, которая записывает события в сеансы ETW.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Version

Указывает номер версии события. PowerShell преобразует число в требуемый тип байтов. Значение указывает версию события при определении разных версий одного события.

Тип:Byte
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

После записи события поставщиком в журнал событий можно использовать командлет Get-WinEvent для получения события из журнала событий.