Udostępnij za pośrednictwem


Register-CimIndicationEvent

Subskrybuj wskazania przy użyciu wyrażenia filtru lub wyrażenia zapytania.

Składnia

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>]

Opis

Polecenie Register-CimIndicationEvent cmdlet subskrybuje wskazania przy użyciu nazwy klasy oznaczania lub wyrażenia zapytania. Użyj parametru SourceIdentifier nadaj nazwę subskrypcji.

To polecenie cmdlet zwraca obiekt EventSubscription . Tego obiektu można użyć do anulowania subskrypcji.

Przykłady

Przykład 1. Rejestrowanie zdarzeń wygenerowanych przez klasę

W tym przykładzie subskrybuje zdarzenia wygenerowane przez klasę o nazwie Win32_ProcessStartTrace. Ta klasa zgłasza zdarzenie za każdym razem, gdy rozpocznie się proces.

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

Polecenie Get-Event cmdlet pobiera zdarzenia z subskrypcją ProcessStarted . Aby uzyskać więcej informacji, zobacz Get-Event.

Uwaga

W tym przykładzie musisz uruchomić program PowerShell jako administrator.

Przykład 2. Rejestrowanie zdarzeń przy użyciu zapytania

W tym przykładzie użyto zapytania do subskrybowania zdarzenia wygenerowanego za każdym razem, gdy wystąpi zmiana klasy o nazwie Win32_LocalTime.

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

Przykład 3. Uruchamianie skryptu po nadejściu zdarzenia

W tym przykładzie pokazano, jak używać akcji w odpowiedzi na zdarzenie. Zmienna $action przechowuje blok skryptu dla akcji, który używa zmiennej $event w celu uzyskania dostępu do zdarzenia odebranego z modelu 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

Aby uzyskać więcej informacji, zobacz Win32_ProcessStartTrace.

Przykład 4. Rejestrowanie zdarzeń na komputerze zdalnym

Ten przykład subskrybuje zdarzenia na komputerze zdalnym o nazwie Server01. Zdarzenia odebrane z serwera CIM są przechowywane w kolejce zdarzeń w bieżącej sesji programu PowerShell, a następnie uruchamia lokalne Get-Event w celu pobrania zdarzeń.

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

Parametry

-Action

Określa polecenia obsługujące zdarzenia. Polecenia określone przez ten parametr są uruchamiane po wystąpieniu zdarzenia zamiast wysyłania zdarzenia do kolejki zdarzeń. Dołącz polecenia w nawiasach klamrowych ({}), aby utworzyć blok skryptu.

Blok skryptu określony za pomocą akcji może zawierać $Eventzmienne , , $EventSubscriber$Sender, $SourceEventArgsi $SourceArgs automatyczne, które dostarczają informacje o zdarzeniu do bloku skryptu akcji. Aby uzyskać więcej informacji, zobacz About Automatic Variables (Informacje o zmiennych automatycznych).

Typ:ScriptBlock
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-CimSession

Uruchamia polecenie przy użyciu określonej sesji modelu CIM. Wprowadź zmienną zawierającą sesję modelu CIM lub polecenie, które tworzy lub pobiera sesję modelu CIM, na przykład New-CimSession polecenia cmdlet lub Get-CimSession . Aby uzyskać więcej informacji, zobacz about_CimSession.

Typ:CimSession
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ClassName

Określa klasę wskazania, do której subskrybujesz. Aby przeglądać listę klas, można użyć uzupełniania tabulatorów, ponieważ program PowerShell pobiera listę klas z lokalnego serwera WMI, aby podać listę nazw klas.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ComputerName

Określa nazwę komputera, na którym chcesz uruchomić operację CIM. Można określić w pełni kwalifikowaną nazwę domeny (FQDN), nazwę NetBIOS lub adres IP.

Jeśli określisz ten parametr, polecenie cmdlet utworzy sesję tymczasową na określonym komputerze przy użyciu protokołu WsMan. Jeśli nie określisz tego parametru, polecenie cmdlet wykonuje operację w systemie lokalnym przy użyciu modelu obiektów składników (COM).

Jeśli na tym samym komputerze jest wykonywanych wiele operacji, połącz się przy użyciu sesji modelu CIM, aby uzyskać lepszą wydajność.

Typ:String
Aliasy:CN, ServerName
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Forward

Wskazuje, że zdarzenia dla subskrypcji są przekazywane do sesji na komputerze lokalnym. Użyj tego parametru podczas rejestrowania zdarzeń na komputerze zdalnym lub w sesji zdalnej.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-MaxTriggerCount

Parametr wskazujący, że subskrybent powinien być automatycznie wyrejestrowany po wyzwoleniu przez określony czas. Jeśli wartość jest równa lub mniejsza niż zero, nie ma limitu liczby przypadków wyzwolenia zdarzenia bez wyrejestrowania.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-MessageData

Określa wszelkie dodatkowe dane do skojarzenia z tą subskrypcją zdarzeń. Wartość tego parametru jest wyświetlana we właściwości MessageData wszystkich zdarzeń skojarzonych z tą subskrypcją.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Namespace

Określa przestrzeń nazw dla operacji CIM. Domyślna przestrzeń nazw to root/cimv2. Za pomocą uzupełniania karty można przeglądać listę przestrzeni nazw, ponieważ program PowerShell pobiera listę przestrzeni nazw z lokalnego serwera WMI w celu udostępnienia listy przestrzeni nazw.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-OperationTimeoutSec

Określa czas oczekiwania polecenia cmdlet na odpowiedź z komputera. Domyślnie wartość tego parametru to 0, co oznacza, że polecenie cmdlet używa domyślnej wartości limitu czasu dla serwera.

Jeśli parametr OperationTimeoutSec jest ustawiony na wartość mniejszą niż limit czasu ponawiania próby niezawodnego połączenia przez 3 minuty, awarie sieci, które trwają dłużej niż wartość parametru OperationTimeoutSec, nie są możliwe do odzyskania, ponieważ operacja na serwerze przekracza limit czasu, zanim klient będzie mógł ponownie nawiązać połączenie.

Typ:UInt32
Aliasy:OT
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Query

Określa zapytanie do uruchomienia na serwerze CIM. Jeśli określona wartość zawiera podwójne cudzysłowy ", pojedyncze cudzysłowy 'lub ukośnik \odwrotny, należy je użyć, prefiksując je znakiem ukośnika odwrotnego. Jeśli określona wartość używa operatora LIKE WQL, należy użyć następujących znaków, ujęcie ich w nawiasy kwadratowe []: procent %, podkreślenie _lub otwierając nawias [kwadratowy .

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-QueryDialect

Określa język zapytań używany dla parametru Query . Dopuszczalne wartości tego parametru to: WQL lub CQL. Wartość domyślna to WQL.

Typ:String
Position:Named
Domyślna wartość:WQL
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SourceIdentifier

Określa nazwę subskrypcji. Określona nazwa musi być unikatowa w bieżącej sesji. Wartość domyślna to identyfikator GUID przypisywany przez program PowerShell. Ta wartość jest wyświetlana w wartości właściwości SourceIdentifier obiektu subskrybenta i wszystkich obiektów zdarzeń skojarzonych z tą subskrypcją.

Typ:String
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SupportEvent

Wskazuje, że subskrypcja zdarzeń jest ukryta. Użyj tego parametru, gdy bieżąca subskrypcja jest częścią bardziej złożonego mechanizmu rejestracji zdarzeń i nie powinna być odnajdywane niezależnie.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

Object

To polecenie cmdlet zwraca obiekt EventSubscription .