Compartir a través de


Register-WmiEvent

Se suscribe a un evento de Instrumental de administración de Windows (WMI).

Sintaxis

class (valor predeterminado)

Register-WmiEvent
    [-Class] <String>
    [[-SourceIdentifier] <String>]
    [[-Action] <ScriptBlock>]
    [-Namespace <String>]
    [-Credential <PSCredential>]
    [-ComputerName <String>]
    [-Timeout <Int64>]
    [-MessageData <PSObject>]
    [-SupportEvent]
    [-Forward]
    [-MaxTriggerCount <Int32>]
    [<CommonParameters>]

query

Register-WmiEvent
    [-Query] <String>
    [[-SourceIdentifier] <String>]
    [[-Action] <ScriptBlock>]
    [-Namespace <String>]
    [-Credential <PSCredential>]
    [-ComputerName <String>]
    [-Timeout <Int64>]
    [-MessageData <PSObject>]
    [-SupportEvent]
    [-Forward]
    [-MaxTriggerCount <Int32>]
    [<CommonParameters>]

Description

El cmdlet Register-WmiEvent se suscribe a eventos de Instrumental de administración de Windows (WMI) en el equipo local o en un equipo remoto.

Cuando se genera el evento WMI suscrito, se agrega a la cola de eventos de la sesión local aunque el evento se produzca en un equipo remoto. Para obtener eventos en la cola de eventos, use el cmdlet Get-Event.

Puede usar los parámetros de Register-WmiEvent para suscribirse a eventos en equipos remotos y especificar los valores de propiedad de los eventos que pueden ayudarle a identificar el evento en la cola. También puede usar el parámetro Action para especificar las acciones que se deben realizar cuando se genera un evento suscrito.

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.

Los nuevos cmdlets de Common Information Model (CIM), introducidos en Windows PowerShell 3.0, realizan las mismas tareas que los cmdlets de WMI. Los cmdlets CIM cumplen con los estándares WS-Management (WSMan) y con el estándar CIM, lo que permite a los cmdlets usar las mismas técnicas para administrar equipos que ejecutan el sistema operativo Windows y los que ejecutan otros sistemas operativos. En lugar de usar , considere la posibilidad de usar el cmdlet Register-CimIndicationEvent .

Ejemplos

Ejemplo 1: Suscribirse a eventos generados por una clase

PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"

Este comando se suscribe a los eventos generados por la clase Win32_ProcessStartTrace. Esta clase genera un evento cada vez que se inicia un proceso.

Ejemplo 2: Suscribirse a eventos de creación para un proceso

PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500

Este comando usa una consulta para suscribirse a Win32_process eventos de creación de instancias.

Ejemplo 3: Usar una acción para responder a un evento

PS C:\> $action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id    Name            State      HasMoreData   Location  Command
--    ----            -----      -----------   --------  -------
1     ProcessStarted  NotStarted False                   get-history | where {...

En este ejemplo se muestra cómo usar una acción para responder a un evento. En este caso, cuando se inicia un proceso, los comandos Start-Process de la sesión actual se escriben en un archivo XML.

Cuando se usa el parámetro Action de , Register-WmiEvent devuelve un trabajo en segundo plano que representa la acción del evento. Puede usar los cmdlets job de , como Get-Job y Receive-Job, para administrar el trabajo de evento.

Para obtener más información, consulte about_Jobs.

Ejemplo 4: Registro de eventos en un equipo remoto

PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"

En este ejemplo se registra para eventos en el equipo remoto Server01.

WMI devuelve los eventos al equipo local y los almacena en la cola de eventos de la sesión actual. Para recuperar los eventos, ejecute un comando local Get-Event.

Parámetros

-Action

Especifica los comandos que controlan los eventos. Los comandos del parámetro 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 de Action 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 de . Para obtener más información, consulte about_Automatic_Variables.

Al especificar una acción, Register-WmiEvent devuelve un objeto de trabajo de evento que representa esa acción. Puede usar los cmdlets que contienen el nombre de Job (los cmdlets job de ) 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

-Class

Especifica el evento al que se va a suscribir. Escriba la clase WMI que genera los eventos. Se requiere un parámetro o Query en cada comando.

Propiedades de parámetro

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

Conjuntos de parámetros

class
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ComputerName

Especifica el nombre del equipo en el que se ejecuta el comando. El valor predeterminado es el equipo local.

Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo del equipo. Para especificar el equipo local, escriba el nombre del equipo, un punto (.) o localhost.

Este parámetro no se basa en la comunicación remota de Windows PowerShell. Puede usar el parámetro ComputerName incluso si el equipo no está configurado para ejecutar comandos remotos.

Propiedades de parámetro

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

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

-Credential

Especifica una cuenta de usuario que tiene permiso para realizar esta acción. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como User01 o Domain01\User01, o escriba un objeto de PSCredential, como uno generado por el cmdlet Get-Credential. Si escribe un nombre de usuario, este cmdlet le pedirá una contraseña.

Propiedades de parámetro

Tipo:PSCredential
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

-Forward

Indica que este cmdlet envía eventos para esta suscripción a la sesión en el 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.

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 los datos adicionales que se van a asociar a esta suscripción de eventos. El valor de este parámetro aparece en la propiedad MessageData de todos los eventos asociados a esta suscripción.

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

-Namespace

Especifica el espacio de nombres de la clase WMI.

Propiedades de parámetro

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

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

-Query

Especifica una consulta en el lenguaje de consulta WMI (WQL) que identifica la clase de eventos WMI, como: select * from __InstanceDeletionEvent.

Propiedades de parámetro

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

Conjuntos de parámetros

query
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-SourceIdentifier

Especifica un nombre que seleccione para la suscripción. El nombre que seleccione debe ser único en la sesión actual. El valor predeterminado es el GUID que asigna Windows PowerShell.

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.

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:False
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 este cmdlet oculta la suscripción de eventos. Use 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ó mediante el parámetro supportEvent de , especifique el parámetro Force de los cmdlets Get-EventSubscriber y 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

-Timeout

Especifica cuánto tiempo espera Windows PowerShell a que finalice este comando.

El valor predeterminado, 0 (cero), significa que no hay tiempo de espera y hace que Windows PowerShell espere indefinidamente.

Propiedades de parámetro

Tipo:Int64
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:TimeoutMSec

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 pueden canalizar objetos a este cmdlet.

Salidas

None

Este cmdlet no genera ningún resultado.

Notas

  • Para usar este cmdlet en Windows Vista o una versión posterior del sistema operativo Windows, inicie Windows PowerShell mediante la opción Ejecutar como administrador.

    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.