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.
Tipo: | PSObject[] |
Posizione: | 2 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-MessageData
Specifica i dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.
Tipo: | PSObject |
Posizione: | 3 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Sender
Specifica l'oggetto che genera l'evento. Il valore predefinito è il motore di PowerShell.
Tipo: | PSObject |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Note
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.