Register-WmiEvent
Sottoscrive un evento strumentazione gestione Windows (WMI).
Sintassi
class (Impostazione predefinita)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Descrizione
Il cmdlet Register-WmiEvent sottoscrive gli eventi di Strumentazione gestione Windows (WMI) nel computer locale o in un computer remoto.
Quando viene generato l'evento WMI sottoscritto, viene aggiunto alla coda eventi nella sessione locale anche se l'evento si verifica in un computer remoto. Per ottenere eventi nella coda di eventi, usare il cmdlet Get-Event.
È possibile utilizzare i parametri di Register-WmiEvent per sottoscrivere gli eventi nei computer remoti e specificare i valori delle proprietà degli eventi che consentono di identificare l'evento nella coda.
È inoltre possibile utilizzare il parametro Action per specificare le azioni da eseguire quando viene generato un evento sottoscritto.
Quando si sottoscrive un evento, alla sessione viene aggiunto un sottoscrittore di eventi. Per ottenere i sottoscrittori di eventi nella sessione, usare il cmdlet Get-EventSubscriber. Per annullare la sottoscrizione, usare il cmdlet Unregister-Event che elimina il sottoscrittore dell'evento dalla sessione.
I nuovi cmdlet CIM (Common Information Model), introdotti in Windows PowerShell 3.0, eseguono le stesse attività dei cmdlet WMI.
I cmdlet CIM sono conformi agli standard WS-Management (WSMan) e allo standard CIM, che consente ai cmdlet di utilizzare le stesse tecniche per gestire i computer che eseguono il sistema operativo Windows e quelli che eseguono altri sistemi operativi.
Anziché utilizzare Register-WmiEvent, è consigliabile utilizzare il cmdlet Register-CimIndicationEvent .
Esempio
Esempio 1: Sottoscrivere eventi generati da una classe
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Questo comando sottoscrive gli eventi generati dalla classe Win32_ProcessStartTrace . Questa classe genera un evento ogni volta che viene avviato un processo.
Esempio 2: Sottoscrivere gli eventi di creazione per un processo
PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500
Questo comando utilizza una query per sottoscrivere Win32_process eventi di creazione dell'istanza.
Esempio 3: utilizzare un'azione per rispondere a un evento
PS C:\> $action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
In questo esempio viene illustrato come utilizzare un'azione per rispondere a un evento. In questo caso, all'avvio di un processo, tutti i comandi Start-Process nella sessione corrente vengono scritti 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 dell'evento.
Per ulteriori informazioni, vedere about_Jobs.
Esempio 4: Registrarsi per gli eventi in un computer remoto
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"
In questo esempio viene eseguita la registrazione degli eventi nel computer remoto Server01.
WMI restituisce gli eventi al computer locale e li archivia nella coda eventi della sessione corrente. Per recuperare gli eventi, eseguire un comando Get-Event locale.
Parametri
-Action
Specifica i comandi che gestiscono gli eventi. I comandi del parametro Action vengono eseguiti quando viene generato un evento anziché inviare l'evento alla coda eventi. Racchiudere i comandi tra parentesi graffe ( { } ) per creare un blocco di script.
Il valore di Action può includere le variabili $Event, $EventSubscriber, $Sender, $EventArgs e $Args automatiche, che forniscono informazioni sull'evento al blocco Action script . 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 (i cmdlet Job ) per gestire il processo dell'evento.
Proprietà dei parametri
| Tipo: | ScriptBlock |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 101 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Class
Specifica l'evento a cui si sta sottoscrivendo. Immettere la classe WMI che genera gli eventi. In ogni comando è necessario un parametro Class o Query .
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
class
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ComputerName
Specifica il nome del computer in cui viene eseguito il comando. Il valore predefinito è il computer locale.
Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo del computer. Per specificare il computer locale, digitare il nome del computer, un punto (.) o localhost.
Questo parametro non si basa sulla comunicazione remota di Windows PowerShell.
È possibile usare il parametro
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | CN |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Credential
Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, questo cmdlet richiede una password.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Forward
Indica che questo cmdlet invia gli eventi per questa sottoscrizione alla sessione nel computer locale. Usare questo parametro quando si esegue la registrazione per gli eventi in un computer remoto o in una sessione remota.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-MaxTriggerCount
Specifica il numero massimo di trigger.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-MessageData
Specifica eventuali dati aggiuntivi da associare a questa sottoscrizione di eventi. Il valore di questo parametro viene visualizzato nella proprietà MessageData di tutti gli eventi associati alla sottoscrizione.
Proprietà dei parametri
| Tipo: | PSObject |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Namespace
Specifica lo spazio dei nomi della classe WMI.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | NS |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Query
Specifica una query in WMI Query Language (WQL) che identifica la classe di evento WMI, ad esempio: select * from __InstanceDeletionEvent.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
query
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SourceIdentifier
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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 100 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SupportEvent
Indica che questo cmdlet nasconde la sottoscrizione dell'evento. Usare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuato in modo indipendente.
Per visualizzare o annullare una sottoscrizione creata utilizzando il parametro SupportEvent , specificare il parametro Force dei cmdlet Get-EventSubscriber e Unregister-Event.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Timeout
Specifica il tempo di attesa di Windows PowerShell per il completamento del comando.
Il valore predefinito, 0 (zero), indica che non è presente alcun timeout e che Windows PowerShell rimane in attesa per un periodo di tempo indefinito.
Proprietà dei parametri
| Tipo: | Int64 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | TimeoutMSec |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| 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
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
None
Questo cmdlet non genera alcun output.
Note
Per utilizzare questo cmdlet in Windows Vista o in una versione successiva del sistema operativo Windows, avviare Windows PowerShell utilizzando l'opzione Esegui come amministratore.
Gli eventi, le sottoscrizioni 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.