Assina eventos que são gerados pelo mecanismo Windows PowerShell e pelo cmdlet New-Event.

Sintaxe

Register-EngineEvent [-SourceIdentifier] <string> [[-Action] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>]

Descrição

O cmdlet Register-EngineEvent assina eventos que são gerados pelo mecanismo Windows PowerShell e pelo cmdlet New-Event. Use o parâmetro SourceIdentifier para especificar o evento.

Você pode usar este cmdlet para assinar o evento de mecanismo “Exiting” e eventos gerados pelo cmdlet New-Event. Esses eventos são acrescentados automaticamente à fila de eventos por sua sessão sem assinar. Porém, a assinatura permite que você encaminhe os eventos, especifique uma ação para responder aos eventos e cancele a assinatura.

Quando o evento assinado é aumentado, é adicionado à fila de eventos da sua sessão. Para obter eventos na fila de eventos, use o cmdlet Get-Event.

Ao assinar um evento, um assinante de evento é adicionado à 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.

Parâmetros

-Action <scriptblock>

Especifica comandos que manipulam os eventos. Os comandos da ação são executados quando um evento é gerado, em vez de enviar o evento à fila de eventos. Coloque o comando entre chaves ( { } ) para criar um bloco de scripts.

O valor do parâmetro Action pode incluir as variáveis automáticas $Event, $EventSubscriber, $Sender, $SourceEventArgs e $SourceArgs, que fornecem informações sobre o evento para o bloco de script Action. Para obter mais informações, consulte about_Automatic_Variables.

Quando você especifica uma ação, Register-EngineEvent retorna um objeto de trabalho de evento que representa a ação. É possível usar os cmdlets Job para gerenciar o trabalho de evento.

Necessário?

false

Posição?

102

Valor padrão

nenhum

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Forward

Envia eventos desta assinatura para a sessão no computador local. Use este parâmetro quando estiver registrando-se para eventos em um computador remoto ou em uma sessão remota.

Necessário?

false

Posição?

named

Valor padrão

False

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-MessageData <psobject>

Especifica dados adicionais associados ao evento. O valor deste parâmetro aparece na propriedade MessageData do objeto de evento.

Necessário?

false

Posição?

named

Valor padrão

nenhum

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-SourceIdentifier <string>

Especifica o identificador de origem do evento o qual você está assinando. O identificador de origem deve ser exclusivo na sessão atual. Esse parâmetro é obrigatório.

O valor desse parâmetro aparece no valor da propriedade SourceIdentifier do objeto de assinante e de todos os objetos de evento associados à assinatura.

Necessário?

true

Posição?

101

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-SupportEvent

Oculta a assinatura do evento. Use este parâmetro quando a assinatura atual fizer parte de um mecanismo de registro de eventos mais complexo e não precisar ser descoberta de forma independente.

Para exibir ou cancelar uma assinatura criada com o parâmetro SupportEvent, use o parâmetro Force dos cmdlets Get-EventSubscriber e Unregister-Event.

Necessário?

false

Posição?

named

Valor padrão

False

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

None

Não é possível canalizar saída para Register-EngineEvent.

Saídas

None ou System.Management.Automation.PSEventJob

Se você usar o parâmetro Action, Register-EngineEvent retornará um objeto System.Management.Automation.PSEventJob. Caso contrário, ele não gera nenhuma saída.

Observações

Eventos, assinaturas de eventos e a fila de eventos só existem na sessão atual. Se você fechar a sessão atual, a fila de eventos será descartada e a assinatura de evento será cancelada.

Exemplo 1

C:\PS>$s = new-pssession -computername Server01, Server02

C:\PS> invoke-command -session $s { Register-EngineEvent -sourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -forward }

Descrição
-----------
Este comando registra um evento de mecanismo Windows PowerShell em dois computadores remotos. 

O primeiro comando cria uma PSSession em cada um dos computadores remotos.

O segundo comando usa o cmdlet Invoke-Command para executar um comando Register-EngineEvent nas sessões remotas. 

O comando Register-EngineEvent usa o parâmetro SourceIdentifier para identificar o evento. Usa o parâmetro Forward para encaminhar os eventos da sessão remota para a sessão local.






Exemplo 2

C:\PS>$j = register-engineEvent -sourceIdentifier PowerShell.ProcessCreated -action { $processName | add-content processLog.txt } 

C:\PS> get-event

C:\PS> $results = $j | receive-job

C:\PS> unregister-event PowerShell.ProcessCreated

Descrição
-----------
Este comando mostra como usar os cmdlets Job para gerenciar o objeto de trabalho de evento que Register-EngineEvent retorna quando você usa o parâmetro Action.

Um trabalho de evento é gerenciado como qualquer outro trabalho do Windows PowerShell. Para obter mais informações, consulte about_jobs. Neste exemplo, o cmdlet Receive-Job é usado para obter os resultados do trabalho.

Para excluir o trabalho da sessão, use Remove-Job. Para cancelar sua assinatura de evento, use o cmdlet Unregister-Event. Para excluir os eventos da fila de eventos, use Remove-Event.






See Also




Sumário