Sottoscrive un evento di Strumentazione gestione Windows (WMI).
Sintassi
Register-WmiEvent [-Classe] <string> [[-SourceIdentifier] <string>] [[-Azione] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Spazio dei nomi <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>] Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Azione] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Spazio dei nomi <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]
Descrizione
Il cmdlet Register-WmiEvent sottoscrive eventi WMI nel computer locale o in un computer remoto.
Quando l'evento WMI sottoscritto viene generato, viene aggiunto alla coda degli eventi nella sessione locale, anche se si verifica in un computer remoto. Per ottenere eventi nella coda degli eventi, utilizzare il cmdlet Get-Event.
È possibile utilizzare i parametri di Register-WmiEvent per sottoscrivere eventi nei computer remoti e specificare valori delle proprietà degli eventi che agevolano l'individuazione dell'evento nella coda. È anche possibile utilizzare il parametro Action per specificare azioni da eseguire quando viene generato un evento sottoscritto.
Quando si sottoscrive un evento, un sottoscrittore di eventi viene aggiunto 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 comandi che gestiscono gli eventi. I comandi nel parametro 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-WmiEvent restituisce un oggetto processo evento che rappresenta tale azione. È possibile utilizzare i cmdlet che contengono il sostantivo Job (cmdlet Job) per gestire il processo evento.
Obbligatorio? |
false |
Posizione? |
102 |
Valore predefinito |
The event is added to the event queue. |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Classe <string>
Specifica l'evento sottoscritto. Immettere la classe WMI che genera gli eventi. È richiesto un parametro Class o Query in ogni comando.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ComputerName <string>
Specifica un computer remoto. Il valore predefinito è il computer locale. Immettere un nome NetBIOS, un indirizzo IP o un nome di dominio completo.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
Local computer |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Credential <PSCredential>
Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio uno del cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
The credentials of the current user |
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 |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-MessageData <psobject>
Specifica qualsiasi dato aggiuntivo associato a questa sottoscrizione di evento. Il valore di questo parametro viene visualizzato nella proprietà MessageData di tutti gli eventi associati a questa sottoscrizione.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
None. The MessageData property is NULL. |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Spazio dei nomi <string>
Specifica lo spazio dei nomi della classe WMI.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Query <string>
Specifica una query WQL (WMI Query Language) che identifica la classe dell'evento WMI, ad esempio "select * from __InstanceDeletionEvent".
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
nessuno |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-SourceIdentifier <string>
Specifica un nome selezionato per la sottoscrizione. Il nome selezionato deve essere univoco nella sessione corrente. Il valore predefinito è il GUID assegnato da Windows PowerShell.
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? |
false |
Posizione? |
101 |
Valore predefinito |
GUID |
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 |
-Timeout <Int64>
Determina il tempo di attesa da parte di Windows PowerShell per il completamento del comando.
Il valore predefinito 0 (zero) indica che non è impostato alcun timeout e determina un'attesa illimitata di Windows PowerShell.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
0 |
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 oggetti a Register-WmiEvent. |
Output |
Nessuno Questo cmdlet non genera alcun output. |
Note
Per utilizzare questo cmdlet in Windows Vista o in una versione successiva di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".
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>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" Descrizione ----------- Con questo comando si sottoscrivono gli eventi generati dalla classe Win32_ProcessStartTrace. Con questa classe viene generato un evento a ogni avvio di un processo.
Esempio 2
C:\PS>register-wmiEvent -query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess" -messageData "Test 01" -timeout 500 Descrizione ----------- In questo comando viene utilizzata una query per sottoscrivere eventi di creazione di istanze Win32_process.
Esempio 3
C:\PS>$action = { get-history | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" } C:\PS> register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" -action $action Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 ProcessStarted NotStarted False get-history | where {... Descrizione ----------- In questo esempio viene illustrato come utilizzare un'azione per rispondere a un evento. In questo caso, all'avvio di un processo qualsiasi comando Start-Process della sessione corrente viene scritto in un file XML. Quando si utilizza il parametro Action, Register-WmiEvent restituisce un processo in background che rappresenta l'azione dell'evento. È possibile utilizzare i cmdlet Job, ad esempio Get-Job e Receive-Job, per gestire il processo evento. Per ulteriori informazioni, vedere about_Jobs.
Esempio 4
C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01 C:\PS> get-event -sourceIdentifier "Start" Descrizione ----------- In questo esempio viene effettuata la registrazione di eventi nel computer remoto Server01. WMI restituisce gli eventi al computer locale e li archivia nella coda degli eventi della sessione corrente. Per recuperare gli eventi, eseguire un comando Get-Event locale.
Vedere anche