New-Event
Crea un nuovo evento.
Sintassi
Default (Impostazione predefinita)
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 del cmdlet per chiamare il cmdlet New-Event, 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.
Proprietà dei parametri
| Tipo: | PSObject[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-MessageData
Specifica dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.
Proprietà dei parametri
| Tipo: | PSObject |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 3 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Sender
Specifica l'oggetto che genera l'evento. Il valore predefinito è il motore di PowerShell.
Proprietà dei parametri
| Tipo: | PSObject |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
None
Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.
Output
PSEventArgs
Note
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.