Compartir a través de


New-Event

Crea un nuevo evento.

Sintaxis

New-Event
   [-SourceIdentifier] <String>
   [[-Sender] <PSObject>]
   [[-EventArguments] <PSObject[]>]
   [[-MessageData] <PSObject>]
   [<CommonParameters>]

Description

El cmdlet New-Event crea un nuevo evento personalizado.

Puede usar eventos personalizados para notificar a los usuarios los cambios de estado en el programa y cualquier cambio que el programa pueda detectar, incluidas las condiciones del hardware o del sistema, el estado de la aplicación, el estado del disco, el estado de la red o la finalización de un trabajo en segundo plano.

Los eventos personalizados se agregan automáticamente a la cola de eventos de la sesión cada vez que se generan; no es necesario suscribirse a ellos. Sin embargo, si desea reenviar un evento a la sesión local o especificar una acción para responder al evento, use el cmdlet Register-EngineEvent para suscribirse al evento personalizado.

Cuando se suscribe a un evento personalizado, el suscriptor de eventos se agrega a la sesión. Si cancela la suscripción de eventos mediante el cmdlet Unregister-Event, el suscriptor de eventos y el evento personalizado se eliminan de la sesión. Si no se suscribe al evento personalizado, para eliminar el evento, debe cambiar las condiciones del programa o cerrar la sesión de PowerShell.

Ejemplos

Ejemplo 1: Creación de un nuevo evento en la cola de eventos

PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"

Este comando crea un nuevo evento en la cola de eventos de PowerShell. Usa un objeto Windows.Timer para enviar el evento.

Ejemplo 2: Generar un evento en respuesta a otro evento

PS C:\> function Enable-ProcessCreationEvent
{
   $Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
   $ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
   $Identifier = "WMI.ProcessCreated"
   Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
   {
      [void] (New-Event -SourceID "PowerShell.ProcessCreated" -Sender $Args[0] -EventArguments $Args[1].SourceEventArgs.NewEvent.TargetInstance)
   }
}

Esta función de ejemplo usa el cmdlet New-Event para generar un evento en respuesta a otro evento. El comando usa el cmdlet Register-ObjectEvent para suscribirse al evento Instrumental de administración de Windows (WMI) que se genera cuando se crea un nuevo proceso. El comando usa el parámetro Action del cmdlet para llamar al cmdlet New-Event, que crea el nuevo evento.

Dado que los eventos que New-Event genera se agregan automáticamente a la cola de eventos de PowerShell, no es necesario registrarse para ese evento.

Parámetros

-EventArguments

Especifica un objeto que contiene opciones para el evento.

Tipo:PSObject[]
Posición:2
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-MessageData

Especifica datos adicionales asociados al evento. El valor de este parámetro aparece en la propiedad MessageData del objeto de evento.

Tipo:PSObject
Posición:3
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Sender

Especifica el objeto que genera el evento. El valor predeterminado es el motor de PowerShell.

Tipo:PSObject
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SourceIdentifier

Especifica un nombre para el nuevo evento. Este parámetro es necesario y debe ser único en la sesión.

El valor de este parámetro aparece en la propiedad sourceIdentifier de los eventos.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

PSEventArgs

Notas

No hay orígenes de eventos disponibles en las plataformas Linux o macOS.

El nuevo evento personalizado, la suscripción de eventos y la cola de eventos solo existen en la sesión actual. Si cierra la sesión actual, se descarta la cola de eventos y se cancela la suscripción de eventos.