Condividi tramite


Register-CimIndicationEvent

Sottoscrive le indicazioni usando un'espressione di filtro o un'espressione di query.

Sintassi

Register-CimIndicationEvent
        [-Namespace <String>]
        [-ClassName] <String>
        [-OperationTimeoutSec <UInt32>]
        [-ComputerName <String>]
        [[-SourceIdentifier] <String>]
        [[-Action] <ScriptBlock>]
        [-MessageData <PSObject>]
        [-SupportEvent]
        [-Forward]
        [-MaxTriggerCount <Int32>]
        [<CommonParameters>]
Register-CimIndicationEvent
        [-Namespace <String>]
        [-ClassName] <String>
        [-OperationTimeoutSec <UInt32>]
        -CimSession <CimSession>
        [[-SourceIdentifier] <String>]
        [[-Action] <ScriptBlock>]
        [-MessageData <PSObject>]
        [-SupportEvent]
        [-Forward]
        [-MaxTriggerCount <Int32>]
        [<CommonParameters>]
Register-CimIndicationEvent
        [-Namespace <String>]
        [-Query] <String>
        [-QueryDialect <String>]
        [-OperationTimeoutSec <UInt32>]
        -CimSession <CimSession>
        [[-SourceIdentifier] <String>]
        [[-Action] <ScriptBlock>]
        [-MessageData <PSObject>]
        [-SupportEvent]
        [-Forward]
        [-MaxTriggerCount <Int32>]
        [<CommonParameters>]
Register-CimIndicationEvent
        [-Namespace <String>]
        [-Query] <String>
        [-QueryDialect <String>]
        [-OperationTimeoutSec <UInt32>]
        [-ComputerName <String>]
        [[-SourceIdentifier] <String>]
        [[-Action] <ScriptBlock>]
        [-MessageData <PSObject>]
        [-SupportEvent]
        [-Forward]
        [-MaxTriggerCount <Int32>]
        [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Register-CimIndicationEvent cmdlet sottoscrive le indicazioni usando un nome di classe di indicazione o un'espressione di query. Usare il parametro SourceIdentifier per assegnare un nome alla sottoscrizione.

Questo cmdlet restituisce un oggetto EventSubscription . È possibile usare questo oggetto per annullare la sottoscrizione.

Esempio

Esempio 1: Registrare gli eventi generati da una classe

Questo esempio sottoscrive gli eventi generati dalla classe denominata Win32_ProcessStartTrace. Questa classe genera un evento ogni volta che viene avviato un processo.

Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Get-Event -SourceIdentifier "ProcessStarted"

Il Get-Event cmdlet ottiene gli eventi con la sottoscrizione ProcessStarted . Per altre informazioni, vedere Get-Event.

Nota

Per questo esempio, è necessario eseguire PowerShell come Amministrazione istrator.

Esempio 2: Registrare gli eventi usando una query

In questo esempio viene usata una query per sottoscrivere un evento generato ogni volta che viene apportata una modifica nell'istanza di una classe denominata Win32_LocalTime.

$query = "SELECT * FROM CIM_InstModification WHERE TargetInstance ISA 'Win32_LocalTime'"
Register-CimIndicationEvent -Query $query -SourceIdentifier "Timer"

Esempio 3: Eseguire uno script all'arrivo dell'evento

Questo esempio illustra come usare un'azione in risposta a un evento. La variabile $action contiene il blocco di script per Action, che usa la $event variabile per accedere all'evento ricevuto da CIM.

$action = {
  $name = $event.SourceEventArgs.NewEvent.ProcessName
  $id = $event.SourceEventArgs.NewEvent.ProcessId
  Write-Host -Object "New Process Started : Name = $name
 ID = $id"
}
Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action

Per altre informazioni, vedere Win32_ProcessStartTrace.

Esempio 4: Registrare gli eventi in un computer remoto

Questo esempio sottoscrive gli eventi in un computer remoto denominato Server01. Gli eventi ricevuti dal server CIM vengono archiviati nella coda di eventi nella sessione di PowerShell corrente e quindi esegue un'istanza locale Get-Event per recuperare gli eventi.

Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -ComputerName Server01
Get-Event -SourceIdentifier "ProcessStarted"

Parametri

-Action

Specifica i comandi che gestiscono gli eventi. I comandi specificati da questo parametro 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 blocco di script specificato con Action può includere le $Eventvariabili automatiche , $Sender$SourceEventArgs$EventSubscriber, , e $SourceArgs , che forniscono informazioni sull'evento al blocco script Azione. Per altre informazioni, vedere Informazioni sulle variabili automatiche.

Type:ScriptBlock
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Esegue il comando usando la sessione CIM specificata. Immettere una variabile contenente la sessione CIM o un comando che crea o ottiene la sessione CIM, ad esempio i New-CimSession cmdlet o Get-CimSession . Per altre informazioni, vedere about_CimSession.

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ClassName

Specifica la classe di indicazione a cui si sta sottoscrivendo. È possibile usare il completamento tramite tabulazione per esplorare l'elenco delle classi, perché PowerShell ottiene un elenco di classi dal server WMI locale per fornire un elenco di nomi di classi.

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 si desidera eseguire l'operazione CIM. È possibile specificare un nome di dominio completo (FQDN), un nome NetBIOS o un indirizzo IP.

Se si specifica questo parametro, il cmdlet crea una sessione temporanea nel computer specificato usando il protocollo WsMan. Se non si specifica questo parametro, il cmdlet esegue l'operazione nel sistema locale usando Component Object Model (COM).

Se vengono eseguite più operazioni nello stesso computer, connettersi usando una sessione CIM per ottenere prestazioni migliori.

Type:String
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Forward

Indica che gli eventi per la sottoscrizione vengono inoltrati 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

Parametro per indicare che il sottoscrittore deve essere annullata automaticamente dopo l'attivazione per gli orari specificati. Se il valore è uguale o minore di zero, non esiste alcun limite per il numero di volte in cui l'evento può essere attivato senza essere annullata la registrazione.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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 per l'operazione CIM. Lo spazio dei nomi predefinito è root/cimv2. È possibile usare il completamento della scheda per esplorare l'elenco degli spazi dei nomi, perché PowerShell ottiene un elenco di spazi dei nomi dal server WMI locale per fornire l'elenco degli spazi dei nomi.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OperationTimeoutSec

Specifica la quantità di tempo in cui il cmdlet attende una risposta dal computer. Per impostazione predefinita, il valore di questo parametro è 0, il che significa che il cmdlet usa il valore di timeout predefinito per il server.

Se il parametro OperationTimeoutSec è impostato su un valore inferiore al timeout di tentativo di connessione affidabile di 3 minuti, gli errori di rete che durano più del valore del parametro OperationTimeoutSec non sono recuperabili, perché l'operazione sul server scade prima che il client possa riconnettersi.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Specifica una query da eseguire nel server CIM. Se il valore specificato contiene virgolette doppie , virgolette "'singole o una barra \rovesciata , è necessario usare l'escape di tali caratteri anteponendo loro il carattere barra rovesciata. Se il valore specificato usa l'operatore WQL LIKE, è necessario eseguire l'escape dei caratteri seguenti racchiudendoli tra parentesi quadre []: percentuale %, sottolineatura _o parentesi quadra [aperta.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-QueryDialect

Specifica il linguaggio di query utilizzato per il parametro Query . I valori accettabili per questo parametro sono: WQL o CQL. Il valore predefinito è WQL.

Type:String
Position:Named
Default value:WQL
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Specifica un nome per la sottoscrizione. Il nome specificato deve essere univoco nella sessione corrente. Il valore predefinito è un GUID assegnato da PowerShell. Questo valore viene visualizzato nel valore della proprietà SourceIdentifier dell'oggetto sottoscrittore e di tutti gli oggetti evento associati a questa sottoscrizione.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SupportEvent

Indica che la sottoscrizione di eventi è nascosta. 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.

Type:SwitchParameter
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

Object

Questo cmdlet restituisce un oggetto EventSubscription .

Note

PowerShell include gli alias seguenti per Register-CimIndicationEvent:

  • Windows:
    • rcie

Questo cmdlet è disponibile solo nelle piattaforme Windows.