New-Event
Crea un nuovo evento.
Sintassi
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Descrizione
Il cmdlet New-Event
crea un nuovo evento personalizzato.
È possibile usare eventi personalizzati per notificare agli utenti le modifiche di stato nel programma e qualsiasi modifica che il programma possa rilevare, tra cui condizioni hardware o di sistema, stato dell'applicazione, stato del disco, stato della rete o completamento di un processo in background.
Gli eventi personalizzati vengono aggiunti automaticamente alla coda di 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 cmdlet Register-EngineEvent
per sottoscrivere l'evento personalizzato.
Quando si sottoscrive un evento personalizzato, il sottoscrittore di eventi viene aggiunto alla sessione. Se si annulla la sottoscrizione di eventi usando il cmdlet Unregister-Event
, 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 cmdlet New-Event
per generare un evento in risposta a un altro evento. Il comando usa il cmdlet Register-ObjectEvent
per sottoscrivere l'evento Strumentazione gestione Windows (WMI) generato quando viene creato un nuovo processo. Il comando usa il parametro action
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 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
Nessuna origine evento disponibile nelle piattaforme Linux o macOS.
Il nuovo evento personalizzato, la sottoscrizione di eventi e la coda di eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda di eventi viene eliminata e la sottoscrizione di eventi viene annullata.