Register-WmiEvent
Assina um evento WMI (Instrumentação de Gerenciamento do Windows).
Sintaxe
class (Default)
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
O cmdlet Register-WmiEvent assina eventos da WMI (Instrumentação de Gerenciamento do Windows) no computador local ou em um computador remoto.
Quando o evento WMI assinado é acionado, ele é adicionado à fila de eventos em sua sessão local, mesmo que o evento ocorra em um computador remoto. Para obter eventos na fila de eventos, use o cmdlet Get-Event.
Você pode usar os parâmetros de Register-WmiEvent para assinar eventos em computadores remotos e especificar os valores de propriedade dos eventos que podem ajudá-lo a identificar o evento na fila.
Você também pode usar o parâmetro Action para especificar ações a serem executadas quando um evento assinado é acionado.
Quando você assina um evento, um assinante de evento é adicionado à sua sessão. Para obter os assinantes do evento na sessão, use o cmdlet Get-EventSubscriber. Para cancelar a assinatura, use o cmdlet Unregister-Event, que exclui o assinante do evento da sessão.
Os novos cmdlets do CIM (Common Information Model), introduzidos no Windows PowerShell 3.0, executam as mesmas tarefas que os cmdlets WMI.
Os cmdlets CIM estão em conformidade com os padrões do WS-Management (WSMan) e com o padrão CIM, que permite que os cmdlets usem as mesmas técnicas para gerenciar computadores que executam o sistema operacional Windows e aqueles que executam outros sistemas operacionais.
Em vez de usar
Exemplos
Exemplo 1: assinar eventos gerados por uma classe
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Esse comando assina os eventos gerados pela classe Win32_ProcessStartTrace. Essa classe gera um evento sempre que um processo é iniciado.
Exemplo 2: assinar eventos de criação para um processo
PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500
Esse comando usa uma consulta para assinar Win32_process eventos de criação de instância.
Exemplo 3: usar uma ação para responder a um 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 {...
Este exemplo mostra como usar uma ação para responder a um evento. Nesse caso, quando um processo é iniciado, todos os comandos Start-Process na sessão atual são gravados em um arquivo XML.
Quando você usa o parâmetro Action, Register-WmiEvent retorna um trabalho em segundo plano que representa a ação do evento.
Você pode usar os cmdlets do trabalho
Para obter mais informações, consulte about_Jobs.
Exemplo 4: Registrar-se para eventos em um computador remoto
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"
Este exemplo registra eventos no computador remoto Server01.
O WMI retorna os eventos para o computador local e os armazena na fila de eventos na sessão atual. Para recuperar os eventos, execute um comando local Get-Event.
Parâmetros
-Action
Especifica os comandos que manipulam os eventos. Os comandos no parâmetro Action são executados quando um evento é acionado em vez de enviar o evento para a fila de eventos. Coloque os comandos em chaves ( { } ) para criar um bloco de script.
O valor de de Ação
Quando você especifica uma ação, Register-WmiEvent retorna um objeto de trabalho de evento que representa essa ação.
Você pode usar os cmdlets que contêm o substantivo
Propriedades do parâmetro
| Tipo: | ScriptBlock |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 101 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Class
Especifica o evento ao qual você está assinando.
Insira a classe WMI que gera os eventos.
Um parâmetro de de Classe
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
class
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-ComputerName
Especifica o nome do computador no qual o comando é executado. O padrão é o computador local.
Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado do computador. Para especificar o computador local, digite o nome do computador, um ponto (.) ou localhost.
Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName mesmo se o computador não estiver configurado para executar comandos remotos.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | Cn |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Credential
Especifica uma conta de usuário que tem permissão para executar essa ação. O padrão é o usuário atual.
Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential, como um gerado pelo cmdlet Get-Credential. Se você digitar um nome de usuário, esse cmdlet solicitará uma senha.
Propriedades do parâmetro
| Tipo: | PSCredential |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Forward
Indica que esse cmdlet envia eventos para essa assinatura para a sessão no computador local. Use esse parâmetro quando você estiver se registrando para eventos em um computador remoto ou em uma sessão remota.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-MaxTriggerCount
Especifica a contagem máxima de gatilhos.
Propriedades do parâmetro
| Tipo: | Int32 |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-MessageData
Especifica quaisquer dados adicionais a serem associados a essa assinatura de evento. O valor desse parâmetro aparece na propriedade MessageData de todos os eventos associados a essa assinatura.
Propriedades do parâmetro
| Tipo: | PSObject |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Namespace
Especifica o namespace da classe WMI.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | NS |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Query
Especifica uma consulta na WQL (Linguagem de Consulta WMI) que identifica a classe de evento WMI, como: select * from __InstanceDeletionEvent.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
query
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-SourceIdentifier
Especifica um nome selecionado para a assinatura. O nome selecionado deve ser exclusivo na sessão atual. O valor padrão é o GUID que o Windows PowerShell atribui.
O valor desse parâmetro aparece no valor da propriedade SourceIdentifier do objeto assinante e de todos os objetos de evento associados a esta assinatura.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 100 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-SupportEvent
Indica que esse cmdlet oculta a assinatura do evento. Use esse parâmetro quando a assinatura atual faz parte de um mecanismo de registro de evento mais complexo e não deve ser descoberto de forma independente.
Para exibir ou cancelar uma assinatura criada usando o parâmetro SupportEvent, especifique o parâmetro Force dos cmdlets Get-EventSubscriber e Unregister-Event.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Timeout
Especifica por quanto tempo o Windows PowerShell aguarda a conclusão desse comando.
O valor padrão, 0 (zero), significa que não há tempo limite e faz com que o Windows PowerShell aguarde indefinidamente.
Propriedades do parâmetro
| Tipo: | Int64 |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | TimeoutMSec |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
None
Você não pode redirecionar objetos para este cmdlet.
Saídas
None
Este cmdlet não gera saída.
Observações
Para usar esse cmdlet no Windows Vista ou em uma versão posterior do sistema operacional Windows, inicie o Windows PowerShell usando a opção Executar como administrador.
Eventos, assinaturas de evento e a fila de eventos existem apenas na sessão atual. Se você fechar a sessão atual, a fila de eventos será descartada e a assinatura do evento será cancelada.