Register-EngineEvent
Assina eventos gerados pelo mecanismo do Windows PowerShell e pelo cmdlet New-Event.
Sintaxe
Default (Predefinição)
Register-EngineEvent
[-SourceIdentifier] <String>
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
O cmdlet Register-EngineEvent assina eventos gerados pelo mecanismo do Windows PowerShell e pelo cmdlet New-Event. Use o parâmetro SourceIdentifier para especificar o evento.
Você pode usar esse cmdlet para se inscrever no evento Exiting engine e nos eventos gerados pelo cmdlet New-Event. Esses eventos são adicionados automaticamente à fila de eventos na sessão sem se inscrever. No entanto, a subscrição permite-lhe reencaminhar os eventos, especificar uma ação para responder aos eventos e cancelar a subscrição.
Quando o evento inscrito é gerado, ele é adicionado à fila de eventos em sua sessão. Para obter eventos na fila de eventos, use o cmdlet Get-Event.
Quando subscreve um evento, um subscritor do 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.
Exemplos
Exemplo 1: Registrar um evento do mecanismo do PowerShell em computadores 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 registra um evento do mecanismo do Windows PowerShell em dois computadores remotos.
O primeiro comando cria uma sessão gerenciada pelo usuário (PSSession) em cada um dos computadores remotos.
O segundo comando usa o cmdlet Invoke-Command para executar o comando Register-EngineEvent nas sessões remotas.
O comando Register-EngineEvent usa o parâmetro SourceIdentifier para identificar o evento. Ele usa o parâmetro Forward para encaminhar os eventos da sessão remota para a sessão local.
Exemplo 2: Quando ocorrer o evento Exiting, execute uma ação especificada
PS C:\> Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
Get-History | Export-Clixml $Home\history.clixml
}
Este comando mostra como executar Register-EngineEvent para executar uma ação específica quando o evento PowerShell.Exiting ocorre. O parâmetro SupportEvent é adicionado para ocultar a subscrição do evento. Quando o Windows PowerShell é encerrado, nesse caso, o histórico de comandos da sessão de saída é exportado em formato XML para um nome de arquivo e caminho no diretório $Home do usuário.
Parâmetros
-Action
Especifica comandos para manipular os eventos. Os comandos na Ação são executados quando um evento é gerado, em vez de enviar o evento para a fila de eventos. Coloque os comandos entre chaves ( { } ) para criar um bloco de script.
O valor do parâmetro Action pode incluir as variáveis automáticas $Event, $EventSubscriber, $Sender, $EventArgs e $Args, que fornecem informações sobre o evento para o bloco de script Action. Para obter mais informações, consulte about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212).
Quando você especifica uma ação, Register-EngineEvent retorna um objeto de trabalho de evento que representa essa ação. Você pode usar os cmdlets Job para gerenciar a tarefa de evento.
Propriedades dos parâmetros
| Tipo: | ScriptBlock |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 101 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Forward
Indica que o cmdlet envia eventos desta assinatura para a sessão no computador local. Use esse parâmetro quando estiver se registrando para eventos em um computador remoto ou em uma sessão remota.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-MaxTriggerCount
Especifica a contagem máxima de gatilhos.
O valor do parâmetro Action pode incluir as variáveis automáticas $Event, $EventSubscriber, $Sender, $EventArgs e $Args, que fornecem informações sobre o evento para o bloco de script Action. Para obter mais informações, consulte about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212).
Quando você especifica uma ação, Register-EngineEvent retorna um objeto de trabalho de evento que representa essa ação. Você pode usar os cmdlets Job para gerenciar a tarefa de evento.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-MessageData
Especifica dados adicionais associados ao evento. O valor desse parâmetro aparece na propriedade MessageData do objeto de evento.
Propriedades dos parâmetros
| Tipo: | PSObject |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-SourceIdentifier
Especifica o identificador de origem do evento ao qual você está se inscrevendo. O identificador de origem deve ser exclusivo na sessão atual. Este parâmetro é obrigatório.
O valor desse parâmetro aparece no valor da propriedade SourceIdentifier do objeto do assinante e de todos os objetos de evento associados a essa assinatura.
Os valores EngineEvent suportados incluem PowerShell.Exiting, PowerShell.OnIdle e PowerShell.OnScriptBlockInvoke.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 100 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-SupportEvent
Indica que o cmdlet oculta a assinatura do evento. Adicione esse parâmetro quando a assinatura atual fizer parte de um mecanismo de registro de eventos mais complexo e não for descoberta independentemente.
Para exibir ou cancelar uma assinatura criada com o parâmetro SupportEvent, adicione o parâmetro Force aos cmdlets Get-EventSubscriber ou Unregister-Event.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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
Não é possível canalizar a entrada para Register-EngineEvent.
Saídas
None or System.Management.Automation.PSEventJob
Se você usar o parâmetro
Notas
Eventos, assinaturas de eventos e a fila de eventos existem somente na sessão atual. Se você fechar a sessão atual, a fila de eventos será descartada e a assinatura do evento será cancelada.