New-Event
Crea un evento.
Sintaxis
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Description
El New-Event
cmdlet crea un nuevo evento personalizado.
Los eventos personalizados se pueden usar para informar a los usuarios de los cambios de estado en el programa y de cualquier cambio que puede detectar el programa, como el estado 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 en 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 Register-EngineEvent
cmdlet 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 Unregister-Event
cmdlet , 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 New-Event
cmdlet para generar un evento en respuesta a otro evento. El comando usa el Register-ObjectEvent
cmdlet 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 New-Event
cmdlet , 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 las opciones del evento.
Tipo: | PSObject[] |
Posición: | 2 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-MessageData
Especifica información adicional asociada 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
Escribe el nombre del nuevo evento. Este parámetro es obligatorio 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
Notas
El nuevo evento personalizado, la suscripción al evento y la cola de eventos solo existen en la sesión actual. Si la cierra, la cola de eventos se descartará y la suscripción al evento se cancelará.