New-WinEvent
Crea un nuevo evento de Windows para el proveedor de eventos especificado.
Sintaxis
New-WinEvent
[-ProviderName] <String>
[-Id] <Int32>
[-Version <Byte>]
[[-Payload] <Object[]>]
[<CommonParameters>]
Description
Este cmdlet solo está disponible en la plataforma Windows.
El New-WinEvent
cmdlet crea un evento de seguimiento de eventos para Windows (ETW) para un proveedor de eventos.
Puede usar este cmdlet para agregar eventos a canales ETW desde PowerShell.
Ejemplos
Ejemplo 1: Creación de un evento
New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")
Este comando usa el cmdlet para crear el New-WinEvent
evento 45090 para el proveedor Microsoft-Windows-PowerShell.
Ejemplo 2: Obtención de la plantilla de un evento
En este ejemplo, Get-WinEvent
se usa para obtener la plantilla para el identificador de evento 8007 del proveedor de eventos de directiva de grupo. Observe que el evento tiene dos formatos.
En la versión 0, el campo IsMachine es un valor booleano. En la versión 1, el campo IsMachine es un valor entero sin signo.
(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.
La propiedad Description contiene el mensaje que se escribe en el registro de eventos. El %3
valor y %1
son marcadores de posición para los valores pasados a la plantilla. La %3
cadena se reemplaza por el valor pasado al campo PrincipalSamName . La %1
cadena se reemplaza por el valor pasado al campo PolicyElaspedTimeInSeconds .
Ejemplo 3: Creación de un nuevo evento mediante una plantilla con versiones
En este ejemplo se muestra cómo crear un evento mediante una versión de plantilla 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
Si los valores de la carga no coinciden con los tipos de la plantilla, el evento se registra, pero la carga contiene un error.
Parámetros
-Id
Especifica un identificador de evento registrado en el proveedor de eventos.
Tipo: | Int32 |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Payload
La carga es una matriz de valores pasados como argumentos posicionales a la plantilla de eventos. Los valores se insertan en la plantilla para construir el mensaje para el evento. Los eventos pueden tener varias versiones de plantilla que usan diferentes formatos.
Si los valores de la carga no coinciden con los tipos de la plantilla, el evento se registra, pero la carga contiene un error.
Tipo: | Object[] |
Posición: | 2 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ProviderName
Especifica el proveedor de eventos que escribe el evento en un registro de eventos, como "Microsoft-Windows-PowerShell". Un proveedor de eventos ETW es una entidad lógica que escribe los eventos en las sesiones ETW.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Version
Especifica el número de versión del evento. PowerShell convierte el número en el tipo de bytes necesario. El valor especifica la versión del evento cuando se definen versiones diferentes del mismo evento.
Tipo: | Byte |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
None
Este cmdlet no devuelve ningún resultado.
Notas
Una vez que el proveedor escribe el evento en un registro de eventos, puede usar el Get-WinEvent
cmdlet para obtener el evento del registro de eventos.