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