New-WinEvent
Cria um novo evento do Windows para o provedor de eventos especificado.
Sintaxe
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 (Rastreamento de Eventos para Windows) para um provedor de eventos.
Você pode usar esse cmdlet para adicionar eventos aos canais ETW do PowerShell.
Exemplos
Exemplo 1 – Criar um novo evento
New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")
Esse 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 do evento 8007 do provedor de eventos de Política de Grupo. Observe que o evento tem dois formatos.
Na versão 0, o campo IsMachine é um valor booliano. Na versão 1, o campo IsMachine é um valor inteiro sem sinal.
(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 Descrição do contém a mensagem que é gravada no log de eventos. O valor %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 com versão
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 não corresponderem aos tipos no modelo, o evento será registrado, mas o conteúdo conterá um erro.
Parâmetros
-Id
Especifica uma ID de evento registrada no provedor de eventos.
Tipo: | Int32 |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Payload
O conteúdo é 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 não corresponderem aos tipos no modelo, o evento será registrado, mas o conteúdo conterá um erro.
Tipo: | Object[] |
Cargo: | 2 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Version
Especifica o número de versão do evento. O PowerShell converte o número no tipo byte necessário. O valor especifica a versão do evento quando diferentes versões do mesmo evento são definidas.
Tipo: | Byte |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Você não pode redirecionar objetos para este cmdlet.
Saídas
None
Esse cmdlet não retorna nenhuma saída.
Observações
Depois que o provedor gravar o evento em uma caixa de eventos, você poderá usar o cmdlet Get-WinEvent
para obter o evento do log de eventos.