Partilhar via


New-WinEvent

Cria um novo evento do Windows para o provedor de eventos especificado.

Sintaxe

Default (Predefinição)

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

Description

Este cmdlet só está disponível na plataforma Windows.

O cmdlet New-WinEvent cria um evento ETW (Event Tracing for Windows) para um provedor de eventos. Você pode usar esse cmdlet para adicionar eventos aos canais ETW a partir do PowerShell.

Exemplos

Exemplo 1 - Criar um novo evento

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

Este comando usa o cmdlet New-WinEvent para criar o evento 45090 para o provedor Microsoft-Windows-PowerShell.

Exemplo 2 - Obter o modelo para um evento

Neste exemplo, Get-WinEvent é usado para obter o modelo para a ID de evento 8007 do provedor de eventos de Diretiva de Grupo. Observe que o evento tem dois formatos.

Na versão 0, o campo IsMachine é um valor booleano. Na versão 1, o campo IsMachine é um valor inteiro não assinado.

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

A propriedade Description contém a mensagem que é gravada no log de eventos. Os valores %3 e %1 são espaços reservados para os valores passados para o modelo. A cadeia de caracteres %3 é substituída pelo valor passado para o campo PrincipalSamName. A cadeia de caracteres %1 é substituída pelo valor passado para o campo PolicyElaspedTimeInSeconds.

Exemplo 3 - Criar um novo evento usando um modelo versionado

Este exemplo mostra como criar um evento usando uma versão de modelo específica.

$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

Se os valores na carga útil não corresponderem aos tipos no modelo, o evento será registrado, mas a carga conterá um erro.

Parâmetros

-Id

Especifica uma ID de evento registrada no provedor de eventos.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Payload

A carga útil é uma matriz de valores passados como argumentos posicionais para o modelo de evento. Os valores são inseridos no modelo para construir a mensagem para o evento. Os eventos podem ter várias versões de modelo que usam formatos diferentes.

Se os valores na carga útil não corresponderem aos tipos no modelo, o evento será registrado, mas a carga conterá um erro.

Propriedades dos parâmetros

Tipo:

Object[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:2
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ProviderName

Especifica o provedor de eventos que grava o evento em um log de eventos, como "Microsoft-Windows-PowerShell". Um provedor de eventos ETW é uma entidade lógica que grava eventos em sessões ETW.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Version

Especifica o número da versão do evento. O PowerShell converte o número para o tipo de byte necessário. O valor especifica a versão do evento quando diferentes versões do mesmo evento são definidas.

Propriedades dos parâmetros

Tipo:Byte
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Não é possível canalizar objetos para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Notas

Depois que o provedor grava o evento em um log de eventos, você pode usar o cmdlet Get-WinEvent para obter o evento do log de eventos.