Sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event.
Sintassi
Register-EngineEvent [-SourceIdentifier] <string> [[-Azione] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>]
Descrizione
Il cmdlet Register-EngineEvent sottoscrive eventi generati dal modulo di Windows PowerShell e dal cmdlet New-Event. Utilizzare il parametro SourceIdentifier per specificare l'evento.
È possibile utilizzare questo cmdlet per sottoscrivere l'evento del modulo "Exiting" e gli eventi generati dal cmdlet New-Event. Questi eventi vengono aggiunti automaticamente alla coda degli eventi nella sessione senza sottoscrizione. La sottoscrizione consente tuttavia di inoltrare gli eventi, specificare un'azione per rispondere agli eventi e annullare la sottoscrizione.
Quando viene generato, l'evento sottoscritto viene aggiunto alla coda degli eventi nella sessione. Per ottenere eventi nella coda degli eventi, utilizzare il cmdlet Get-Event.
Quando si sottoscrive un evento, viene aggiunto un sottoscrittore di eventi alla sessione. Per ottenere i sottoscrittori di eventi nella sessione, utilizzare il cmdlet Get-EventSubscriber. Per annullare la sottoscrizione, utilizzare il cmdlet Unregister-Event che elimina il sottoscrittore di eventi dalla sessione.
Parametri
-Azione <scriptblock>
Specifica i comandi per la gestione degli eventi. I comandi in Action vengono eseguiti quando viene generato un evento, anziché inviare l'evento alla coda degli eventi. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.
Il valore del parametro Action può includere le variabili automatiche $Event, $EventSubscriber, $Sender, $SourceEventArgs e $SourceArgs che forniscono informazioni sull'evento al blocco di script di Action. Per ulteriori informazioni, vedere about_Automatic_Variables.
Quando si specifica un'azione, Register-EngineEvent restituisce un oggetto processo evento che rappresenta tale azione. È possibile utilizzare i cmdlet Job per gestire il processo evento.
Obbligatorio? |
false |
Posizione? |
102 |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Forward
Invia gli eventi per questa sottoscrizione alla sessione nel computer locale. Utilizzare questo parametro durante la registrazione di eventi in un computer remoto o in una sessione remota.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
False |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-MessageData <psobject>
Specifica dati aggiuntivi associati all'evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData dell'oggetto evento.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SourceIdentifier <string>
Specifica l'identificatore di origine dell'evento sottoscritto. È necessario che l'identificatore di origine sia univoco nella sessione corrente. Questo parametro è obbligatorio.
Il valore di questo parametro viene visualizzato nel valore della proprietà SourceIdentifier dell'oggetto sottoscrittore e di tutti gli oggetti evento associati a questa sottoscrizione.
Obbligatorio? |
true |
Posizione? |
101 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SupportEvent
Nasconde la sottoscrizione di eventi. Utilizzare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuata separatamente.
Per visualizzare o annullare una sottoscrizione creata con il parametro SupportEvent, utilizzare il parametro Force dei cmdlet Get-EventSubscriber e Unregister-Event.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
False |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
Nessuno Non è possibile reindirizzare l'input a Register-EngineEvent. |
Output |
Nessuno o System.Management.Automation.PSEventJob Se si utilizza il parametro Action, Register-EngineEvent restituisce un oggetto System.Management.Automation.PSEventJob. In caso contrario, non genera alcun output. |
Note
Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.
Esempio 1
C:\PS>$s = new-pssession -computername Server01, Server02 C:\PS> invoke-command -session $s { Register-EngineEvent -sourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -forward } Descrizione ----------- In questo comando viene effettuata la registrazione di un evento del modulo di Windows PowerShell in due computer remoti. Nel primo comando viene creato PSSession in ciascun computer remoto. Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire il comando Register-EngineEvent nelle sessioni remote. Il comando Register-EngineEvent utilizza il parametro SourceIdentifier per identificare l'evento. Utilizza il parametro Forward per inoltrare gli eventi dalla sessione remota alla sessione locale.
Esempio 2
C:\PS>$j = register-engineEvent -sourceIdentifier PowerShell.ProcessCreated -action { $processName | add-content processLog.txt } C:\PS> get-event C:\PS> $results = $j | receive-job C:\PS> unregister-event PowerShell.ProcessCreated Descrizione ----------- In questo comando viene illustrato come utilizzare i cmdlet Job per gestire l'oggetto processo evento restituito da Register-EngineEvent quando si utilizza il parametro Action. Un processo evento viene gestito proprio come qualsiasi altro processo di Windows PowerShell. Per ulteriori informazioni, vedere about_jobs. In questo esempio, il cmdlet Receive-Job viene utilizzato per ottenere i risultati del processo. Per eliminare il processo dalla sessione, utilizzare Remove-Job. Per annullare la sottoscrizione dell'evento, utilizzare il cmdlet Unregister-Event. Per eliminare gli eventi nella coda degli eventi, utilizzare Remove-Event.
Vedere anche