Compartir a través de


Register-EngineEvent

Se suscribe a eventos generados por el motor de Windows PowerShell y por el cmdlet New-Event.

Sintaxis

Default (valor predeterminado)

Register-EngineEvent
    [-SourceIdentifier] <String>
    [[-Action] <ScriptBlock>]
    [-MessageData <PSObject>]
    [-SupportEvent]
    [-Forward]
    [-MaxTriggerCount <Int32>]
    [<CommonParameters>]

Description

El cmdlet Register-EngineEvent se suscribe a eventos generados por el motor de Windows PowerShell y el cmdlet New-Event. Use el parámetro SourceIdentifier para especificar el evento.

Puede usar este cmdlet para suscribirse al evento y eventos del motor de salida generados por el cmdlet New-Event. Estos eventos se agregan automáticamente a la cola de eventos en la sesión sin suscribirse. Sin embargo, la suscripción le permite reenviar los eventos, especificar una acción para responder a los eventos y cancelar la suscripción.

Cuando se genera el evento suscrito, se agrega a la cola de eventos de su sesión. Para obtener eventos en la cola de eventos, use el cmdlet Get-Event.

Cuando se suscribe a un evento, se agrega un suscriptor de eventos a la sesión. Para obtener los suscriptores de eventos en la sesión, use el cmdlet Get-EventSubscriber. Para cancelar la suscripción, use el cmdlet Unregister-Event, que elimina el suscriptor de eventos de la sesión.

Ejemplos

Ejemplo 1: Registro de un evento de motor de PowerShell en equipos remotos

PS C:\> $S = New-PSSession -ComputerName "Server01, Server02"
PS C:\> Invoke-Command -Session $S { Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Forward }

Este comando se registra para un evento del motor de Windows PowerShell en dos equipos remotos.

El primer comando crea una sesión administrada por el usuario (PSSession) en cada uno de los equipos remotos.

El segundo comando usa el cmdlet Invoke-Command para ejecutar el comando Register-EngineEvent en las sesiones remotas.

El comando Register-EngineEvent usa el parámetro SourceIdentifier para identificar el evento. Usa el parámetro Forward para reenviar los eventos de la sesión remota a la sesión local.

Ejemplo 2: Realizar una acción especificada cuando se produce el evento Exiting

PS C:\> Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
     Get-History | Export-Clixml $Home\history.clixml
}

Este comando muestra cómo ejecutar Register-EngineEvent para realizar una acción específica cuando se produce el evento PowerShell.Exiting. El parámetro SupportEvent se agrega para ocultar la suscripción de eventos. Cuando Se cierra Windows PowerShell, en este caso, el historial de comandos de la sesión de salida se exporta en formato XML a un nombre de archivo y una ruta de acceso en el directorio $Home del usuario.

Parámetros

-Action

Especifica los comandos para controlar los eventos. Los comandos de Action se ejecutan cuando se genera un evento, en lugar de enviar el evento a la cola de eventos. Incluya los comandos entre llaves ( { } ) para crear un bloque de script.

El valor del parámetro Action de puede incluir las variables automáticas $Event, $EventSubscriber, $Sender, $EventArgs y $Args automáticas, que proporcionan información sobre el evento al bloque de script action. Para obtener más información, vea about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212).

Al especificar una acción, Register-EngineEvent devuelve un objeto de trabajo de evento que representa esa acción. Puede usar los cmdlets de trabajo para administrar el trabajo de evento.

Propiedades de parámetro

Tipo:ScriptBlock
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:101
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Forward

Indica que el cmdlet envía eventos de esta suscripción a la sesión en este equipo local. Use este parámetro cuando se registren eventos en un equipo remoto o en una sesión remota.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-MaxTriggerCount

Especifica el número máximo de desencadenadores.

El valor del parámetro Action de puede incluir las variables automáticas $Event, $EventSubscriber, $Sender, $EventArgs y $Args automáticas, que proporcionan información sobre el evento al bloque de script action. Para obtener más información, vea about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212).

Al especificar una acción, Register-EngineEvent devuelve un objeto de trabajo de evento que representa esa acción. Puede usar los cmdlets de trabajo para administrar el trabajo de evento.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-MessageData

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

Propiedades de parámetro

Tipo:PSObject
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-SourceIdentifier

Especifica el identificador de origen del evento al que se está suscribiendo. El identificador de origen debe ser único en la sesión actual. Este parámetro es obligatorio.

El valor de este parámetro aparece en el valor de la propiedad sourceIdentifier del objeto de suscriptor y de todos los objetos de evento asociados a esta suscripción.

Los valores de EngineEvent admitidos incluyen PowerShell.Exiting, PowerShell.OnIdle y PowerShell.OnScriptBlockInvoke.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:100
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-SupportEvent

Indica que el cmdlet oculta la suscripción de eventos. Agregue este parámetro cuando la suscripción actual forme parte de un mecanismo de registro de eventos más complejo y no se debe detectar de forma independiente.

Para ver o cancelar una suscripción que se creó con el parámetro supportEvent , agregue el parámetro Force a los cmdlets Get-EventSubscriber o Unregister-Event.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

None

No se puede canalizar la entrada a Register-EngineEvent.

Salidas

None or System.Management.Automation.PSEventJob

Si usa el parámetro Action , Register-EngineEvent devuelve un objeto System.Management.Automation.PSEventJob. De lo contrario, no genera ninguna salida.

Notas

  • Los eventos, las suscripciones de eventos y la cola de eventos solo existen en la sesión actual. Si se cierra la sesión actual, se descarta la fila de eventos y se cancela la suscripción al evento.