New-Event

Crea un nuovo evento.

Sintassi

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

Descrizione

Il New-Event cmdlet crea un nuovo evento personalizzato.

È possibile usare gli eventi personalizzati per avvisare gli utenti di cambiamenti di stato all'interno del programma e di qualsiasi modifica che può essere rilevata dal programma, tra cui le condizioni dell'hardware o del sistema, lo stato dell'applicazione, lo stato del disco, lo stato della rete o il completamento di un processo in background.

Gli eventi personalizzati vengono aggiunti automaticamente alla coda degli eventi nella sessione ogni volta che vengono generati; non è necessario sottoscriverli. Tuttavia, se si desidera inoltrare un evento alla sessione locale o specificare un'azione per rispondere all'evento, usare il Register-EngineEvent cmdlet per sottoscrivere l'evento personalizzato.

Quando si sottoscrive un evento personalizzato, viene aggiunto il sottoscrittore di eventi alla sessione. Se si annulla la sottoscrizione di eventi usando il Unregister-Event cmdlet , il sottoscrittore dell'evento e l'evento personalizzato vengono eliminati dalla sessione. Se non si sottoscrive l'evento personalizzato, per eliminare l'evento, è necessario modificare le condizioni del programma o chiudere la sessione di PowerShell.

Esempio

Esempio 1: Creare un nuovo evento nella coda di eventi

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

Questo comando crea un nuovo evento nella coda di eventi di PowerShell. Usa un oggetto Windows.Timer per inviare l'evento.

Esempio 2: Generare un evento in risposta a un altro 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)
   }
}

Questa funzione di esempio usa il New-Event cmdlet per generare un evento in risposta a un altro evento. Il comando usa il Register-ObjectEvent cmdlet per sottoscrivere l'evento Strumentazione gestione Windows (WMI) generato quando viene creato un nuovo processo. Il comando usa il parametro Action del cmdlet per chiamare il New-Event cmdlet , che crea il nuovo evento.

Poiché gli eventi generati New-Event vengono aggiunti automaticamente alla coda di eventi di PowerShell, non è necessario eseguire la registrazione per tale evento.

Parametri

-EventArguments

Specifica un oggetto che contiene le opzioni per l'evento.

Type:PSObject[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MessageData

Specifica i dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.

Type:PSObject
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Sender

Specifica l'oggetto che genera l'evento. Il valore predefinito è il motore di PowerShell.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Specifica un nome per il nuovo evento. Questo parametro è obbligatorio e deve essere univoco nella sessione.

Il valore di questo parametro viene visualizzato nella proprietà SourceIdentifier degli eventi.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

PSEventArgs

Note

Nessuna origine evento disponibile nelle piattaforme Linux o macOS.

Il nuovo evento personalizzato, la sottoscrizione dell'evento e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene rimossa e la sottoscrizione dell'evento viene annullata.