Register-WmiEvent
Sottoscrive un evento di Strumentazione gestione Windows (WMI).
Sintassi
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Class] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Query] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Descrizione
Il Register-WmiEvent
cmdlet 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 degli eventi nella sessione locale anche se l'evento si verifica in un computer remoto. Per ottenere eventi nella coda di eventi, usare il Get-Event
cmdlet .
È possibile usare i parametri di Register-WmiEvent
per sottoscrivere gli eventi nei computer remoti e per specificare i valori delle proprietà degli eventi che consentono di identificare l'evento nella coda. È anche possibile usare il parametro Action per specificare le azioni da eseguire quando viene generato un evento sottoscritto.
Quando si sottoscrive un evento viene aggiunto un sottoscrittore di eventi alla sessione. Per ottenere i sottoscrittori di eventi nella sessione, usare il Get-EventSubscriber
cmdlet . Per annullare la sottoscrizione, usare il Unregister-Event
cmdlet , che elimina il sottoscrittore di eventi dalla sessione.
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 usare le stesse tecniche per gestire i computer che eseguono il sistema operativo Windows e quelli che eseguono altri sistemi operativi. Invece di usare Register-WmiEvent
, è consigliabile usare il cmdlet Register-CimIndicationEvent .
Esempio
Esempio 1: Sottoscrivere eventi generati da una classe
Questo comando sottoscrive gli eventi generati dalla classe Win32_ProcessStartTrace . Questa classe genera un evento ogni volta che viene avviato un processo.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Esempio 2: Sottoscrivere eventi di creazione per un processo
Questo comando usa una query per sottoscrivere gli eventi di creazione istanze di Win32_process.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Esempio 3: Usare un'azione per rispondere a un evento
Questo esempio illustra come usare un'azione per rispondere a un evento. In questo caso, all'avvio di un processo, tutti Start-Process
i comandi nella sessione corrente vengono scritti in un file XML.
$action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
Quando si usa il parametro Action , Register-WmiEvent
restituisce un processo in background che rappresenta l'azione dell'evento. È possibile usare i cmdlet job , ad esempio Get-Job
e Receive-Job
, per gestire il processo dell'evento.
Per altre informazioni, vedere About Jobs (Informazioni sui processi).
Esempio 4: Eseguire la registrazione per gli eventi in un computer remoto
Questo esempio esegue la registrazione agli eventi nel computer remoto Server01.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
WMI restituisce gli eventi al computer locale e li archivia nella coda degli eventi nella sessione corrente. Per recuperare gli eventi, eseguire un comando locale Get-Event
.
Parametri
-Action
Specifica i comandi che gestiscono gli eventi. I comandi nel parametro Action vengono eseguiti quando viene generato un evento anziché inviare l'evento alla coda di eventi. Racchiudere i comandi tra parentesi graffe ({}
) per creare un blocco di script.
Il valore di Action può includere le $Event
variabili automatiche , $Sender
$EventSubscriber
, $EventArgs
, e $Args
, che forniscono informazioni sull'evento al blocco script Action. Per altre informazioni, vedere about_Automatic_Variables.
Quando si specifica un'azione, Register-WmiEvent
restituisce un oggetto processo evento che rappresenta tale azione. È possibile usare i cmdlet che contengono il sostantivo Job (cmdlet Job ) per gestire il processo dell'evento.
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Specifica l'evento da sottoscrivere. Immettere la classe WMI che genera gli eventi. In ogni comando è necessario un parametro Class o Query .
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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 utilizzare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifica un account utente che dispone delle autorizzazioni per 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 uno generato dal Get-Credential
cmdlet. Se si digita un nome utente, questo cmdlet richiede una password.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
Indica che questo cmdlet invia 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
Specifica il numero massimo di trigger.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Specifica i dati aggiuntivi da associare alla sottoscrizione di eventi. Il valore di questo parametro viene visualizzato nella proprietà MessageData di tutti gli eventi associati a questa sottoscrizione.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
Specifica lo spazio dei nomi della classe WMI.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Specifica una query in WQL (WMI Query Language) che identifica la classe di evento WMI, ad esempio : select * from __InstanceDeletionEvent
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
Indica che questo cmdlet nasconde la sottoscrizione di eventi. Usare questo parametro quando la sottoscrizione corrente fa parte di un meccanismo di registrazione eventi più complesso e non deve essere individuata in modo indipendente.
Per visualizzare o annullare una sottoscrizione creata usando il parametro SupportEvent , specificare il parametro Force dei Get-EventSubscriber
cmdlet e Unregister-Event
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
Specifica per quanto tempo Windows PowerShell attende il completamento di questo comando.
Il valore predefinito 0 (zero) indica che non è previsto alcun timeout, per cui l'attesa di Windows PowerShell è illimitata.
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
None
Questo cmdlet non genera alcun output.
Note
Per usare questo cmdlet in Windows Vista o in una versione successiva del sistema operativo Windows, avviare Windows PowerShell usando 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 rimossa e la sottoscrizione dell'evento viene annullata.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per