Condividi tramite


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.