Partilhar via


New-Event

Cria um novo evento.

Sintaxe

Default (Predefinição)

New-Event
    [-SourceIdentifier] <String>
    [[-Sender] <PSObject>]
    [[-EventArguments] <PSObject[]>]
    [[-MessageData] <PSObject>]
    [<CommonParameters>]

Description

O cmdlet New-Event cria um novo evento personalizado.

Você pode usar eventos personalizados para notificar os usuários sobre alterações de estado em seu programa e qualquer alteração que seu programa possa detetar, incluindo condições de hardware ou sistema, status do aplicativo, status do disco, status da rede ou a conclusão de um trabalho em segundo plano.

Os eventos personalizados são adicionados automaticamente à fila de eventos na sua sessão sempre que são gerados; Não é necessário subscrevê-los. No entanto, se você quiser encaminhar um evento para a sessão local ou especificar uma ação para responder ao evento, use o cmdlet Register-EngineEvent para se inscrever no evento personalizado.

Quando você se inscreve em um evento personalizado, o assinante do evento é adicionado à sua sessão. Se você cancelar a assinatura do evento usando o cmdlet Unregister-Event, o assinante do evento e o evento personalizado serão excluídos da sessão. Se você não se inscrever no evento personalizado, para excluir o evento, deverá alterar as condições do programa ou fechar a sessão do PowerShell.

Exemplos

Exemplo 1: Criar um novo evento na fila de eventos

PS C:\> New-Event -SourceIdentifier Timer -Sender Windows.Timer -MessageData "Test"

Este comando cria um novo evento na fila de eventos do PowerShell. Ele usa um objeto Windows.Timer para enviar o evento.

Exemplo 2: Gerar um evento em resposta a outro evento

PS C:\> function Enable-ProcessCreationEvent
{
   $Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
   $ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
   $Identifier = "WMI.ProcessCreated"
   Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
   {
      [void] (New-Event -SourceId "PowerShell.ProcessCreated" -Sender $args[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance)
   }
}

Esta função de exemplo usa o cmdlet New-Event para gerar um evento em resposta a outro evento. O comando usa o cmdlet Register-ObjectEvent para se inscrever no evento WMI (Instrumentação de Gerenciamento do Windows) que é gerado quando um novo processo é criado. O comando usa o parâmetro Action do cmdlet para chamar o cmdlet New-Event, que cria o novo evento.

Como os eventos que New-Event gera são adicionados automaticamente à fila de eventos do PowerShell, você não precisa se registrar para esse evento.

Parâmetros

-EventArguments

Especifica um objeto que contém opções para o evento.

Propriedades dos parâmetros

Tipo:

PSObject[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:2
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:3
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Sender

Especifica o objeto que gera o evento. O padrão é o mecanismo do PowerShell.

Propriedades dos parâmetros

Tipo:PSObject
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SourceIdentifier

Especifica um nome para o novo evento. Este parâmetro é obrigatório e deve ser exclusivo na sessão.

O valor desse parâmetro aparece na propriedade SourceIdentifier dos eventos.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
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 objetos para este cmdlet.

Saídas

PSEventArgs

Notas

Não há fontes de eventos disponíveis nas plataformas Linux ou macOS.

O novo evento personalizado, a assinatura do 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.