Register-WmiEvent
Se suscribe a un evento de Instrumental de administración de Windows (WMI).
Syntax
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Class] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Query] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
El Register-WmiEvent
cmdlet se suscribe a eventos de Instrumental de administración de Windows (WMI) en el equipo local o en un equipo remoto.
El evento de WMI suscrito se agrega a la cola de eventos de la sesión local cuando se genera, incluso si dicho evento se produce en un equipo remoto. Para obtener eventos en la cola de eventos, use el Get-Event
cmdlet .
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 su sesión. Para obtener los suscriptores de eventos en la sesión, use el Get-EventSubscriber
cmdlet . Para cancelar la suscripción, use el Unregister-Event
cmdlet , 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 Register-WmiEvent
el cmdlet Register-CimIndicationEvent .
Ejemplos
Ejemplo 1: Suscribirse a eventos generados por una clase
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.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Ejemplo 2: Suscribirse a eventos de creación para un proceso
Este comando usa una consulta para suscribirse a eventos de creación de instancia Win32_process.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Ejemplo 3: Usar una acción para responder a un evento
En este ejemplo se muestra cómo utilizar una acción para responder a un evento. En este caso, cuando se inicia un proceso, los Start-Process
comandos de la sesión actual se escriben en un archivo XML.
$action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
Cuando se usa el parámetro Action , Register-WmiEvent
devuelve un trabajo en segundo plano que representa la acción del evento. Puede usar los cmdlets job , como Get-Job
y Receive-Job
, para administrar el trabajo de evento.
Para más información, consulte about_Jobs (Acerca de los trabajos).
Ejemplo 4: Registro de eventos en un equipo remoto
En este ejemplo se realiza un registro para eventos en el equipo remoto Server01.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
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 $Event
variables automáticas , $EventSubscriber
, $Sender
, $EventArgs
y $Args
, que proporcionan información sobre el evento al bloque De script de acción . Para obtener más información, vea about_Automatic_Variables.
Cuando se especifica 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 job (los cmdlets job ) para administrar el trabajo de evento.
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Especifica el evento al que se suscribe. Especifique la clase WMI que genera los eventos. Se requiere un parámetro Class o Query en cada comando.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Especifica el nombre del equipo en el que se ejecuta el comando. La opción predeterminada es el equipo local.
Escriba el nombre de 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 utiliza la comunicación remota de Windows PowerShell. Puede usar el parámetro ComputerName incluso si el equipo no está configurado para ejecutar comandos remotos.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Especifica una cuenta de usuario con 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 PSCredential , como uno generado por el Get-Credential
cmdlet. Si escribe un nombre de usuario, este cmdlet le pedirá una contraseña.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
Indica que este cmdlet envía eventos para esta suscripción a la sesión en el equipo local. Utilice este parámetro cuando se registre en eventos de un equipo remoto o de una sesión remota.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
Especifica el número máximo de desencadenadores.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Especifica los datos adicionales que se asociarán con esta suscripción de evento. El valor de este parámetro aparece en la propiedad MessageData de todos los eventos asociados a esta suscripción.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
Especifica el espacio de nombres de la clase WMI.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Especifica una consulta en el lenguaje de consulta WMI (WQL) que identifica la clase de eventos WMI, como: select * from __InstanceDeletionEvent
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Especifica un nombre que usted selecciona para la suscripción. El nombre que seleccione debe ser único en la sesión actual. El valor predeterminado es el GUID asignado por Windows PowerShell.
El valor de este parámetro aparece en el valor de la propiedad SourceIdentifier del objeto subscriber y de todos los objetos de evento asociados a esta suscripción.
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
Indica que este cmdlet oculta la suscripción de eventos. Utilice este parámetro cuando la suscripción actual forme parte de un mecanismo de registro de eventos más complejo y no deba detectarse de forma independiente.
Para ver o cancelar una suscripción creada mediante el parámetro SupportEvent, especifique el parámetro Force de los Get-EventSubscriber
cmdlets y Unregister-Event
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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.
La cola de eventos, las suscripciones de eventos y los 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á.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de