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




Argomenti della Guida