Udostępnij przez


Register-WmiEvent

Subskrybuje zdarzenie instrumentacji zarządzania Windows (WMI).

Składnia

class (domyślnie)

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

Opis

Polecenie cmdlet Register-WmiEvent subskrybuje zdarzenia instrumentacji zarządzania Windows (WMI) na komputerze lokalnym lub na komputerze zdalnym.

Po wystąpieniu subskrybowanego zdarzenia usługi WMI jest dodawane do kolejki zdarzeń w sesji lokalnej, nawet jeśli zdarzenie występuje na komputerze zdalnym. Aby uzyskać zdarzenia w kolejce zdarzeń, użyj polecenia cmdlet Get-Event.

Możesz użyć parametrów Register-WmiEvent, aby subskrybować zdarzenia na komputerach zdalnych i określić wartości właściwości zdarzeń, które mogą pomóc zidentyfikować zdarzenie w kolejce. Możesz również użyć parametru Action, aby określić akcje do wykonania po wystąpieniu subskrybowanego zdarzenia.

Po zasubskrybowaniu zdarzenia subskrybent zdarzenia zostanie dodany do sesji. Aby uzyskać subskrybentów zdarzeń w sesji, użyj polecenia cmdlet Get-EventSubscriber. Aby anulować subskrypcję, użyj polecenia cmdlet Unregister-Event, które usuwa subskrybenta zdarzeń z sesji.

Nowe polecenia cmdlet modelu wspólnych informacji (CIM, Common Information Model), wprowadziły program Windows PowerShell 3.0, wykonują te same zadania co polecenia cmdlet usługi WMI. Polecenia cmdlet modelu ciM są zgodne ze standardami WS-Management (WSMan) i standardem CIM, co umożliwia poleceń cmdlet używanie tych samych technik do zarządzania komputerami z systemem operacyjnym Windows i tymi, które uruchamiają inne systemy operacyjne. Zamiast używać , rozważ użycie polecenia cmdlet Register-CimIndicationEvent.

Przykłady

Przykład 1: Subskrybowanie zdarzeń wygenerowanych przez klasę

PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"

To polecenie subskrybuje zdarzenia generowane przez klasę Win32_ProcessStartTrace. Ta klasa zgłasza zdarzenie za każdym razem, gdy rozpocznie się proces.

Przykład 2. Subskrybowanie zdarzeń tworzenia dla procesu

PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500

To polecenie używa zapytania do subskrybowania Win32_process zdarzeń tworzenia wystąpienia.

Przykład 3. Używanie akcji w celu reagowania na zdarzenie

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 {...

W tym przykładzie pokazano, jak użyć akcji w celu reagowania na zdarzenie. W takim przypadku po uruchomieniu procesu wszystkie polecenia Start-Process w bieżącej sesji są zapisywane w pliku XML.

Jeśli używasz parametru action , Register-WmiEvent zwraca zadanie w tle reprezentujące akcję zdarzenia. Aby zarządzać zadaniem zdarzenia, można użyć poleceń cmdlet zadań , takich jak Get-Job i Receive-Job.

Aby uzyskać więcej informacji, zobacz about_Jobs.

Przykład 4: Rejestrowanie zdarzeń na komputerze zdalnym

PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"

W tym przykładzie są rejestrowane zdarzenia na komputerze zdalnym Server01.

Usługa WMI zwraca zdarzenia na komputerze lokalnym i przechowuje je w kolejce zdarzeń w bieżącej sesji. Aby pobrać zdarzenia, uruchom lokalne polecenie Get-Event.

Parametry

-Action

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

Wartość Action może obejmować $Event, $EventSubscriber, $Sender, $EventArgs i $Args zmiennych automatycznych, które dostarczają informacje o zdarzeniu do bloku skryptu akcja . Aby uzyskać więcej informacji, zobacz about_Automatic_Variables.

Po określeniu akcji Register-WmiEvent zwraca obiekt zadania zdarzenia, który reprezentuje akcję. Polecenia cmdlet zawierające Job noun (polecenia cmdlet Job) umożliwiają zarządzanie zadaniem zdarzenia.

Właściwości parametru

Typ:ScriptBlock
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:101
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Class

Określa zdarzenie, do którego subskrybujesz. Wprowadź klasę WMI, która generuje zdarzenia. W każdym poleceniu jest wymagany parametr klasy lub Query.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

class
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-ComputerName

Określa nazwę komputera, na którym jest uruchamiane polecenie. Wartość domyślna to komputer lokalny.

Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny komputera. Aby określić komputer lokalny, wpisz nazwę komputera, kropkę (.) lub hosta lokalnego.

Ten parametr nie opiera się na komunikacji zdalnej programu Windows PowerShell. Można użyć parametru ComputerName, nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Cn

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Credential

Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to bieżący użytkownik.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential, taki jak jeden wygenerowany przez polecenie cmdlet Get-Credential. Jeśli wpiszesz nazwę użytkownika, to polecenie cmdlet wyświetli monit o podanie hasła.

Właściwości parametru

Typ:PSCredential
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Forward

Wskazuje, że to polecenie cmdlet wysyła zdarzenia dla tej subskrypcji do sesji na komputerze lokalnym. Użyj tego parametru podczas rejestrowania zdarzeń na komputerze zdalnym lub w sesji zdalnej.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-MaxTriggerCount

Określa maksymalną liczbę wyzwalaczy.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-MessageData

Określa wszelkie dodatkowe dane, które mają być skojarzone z tą subskrypcją zdarzeń. Wartość tego parametru jest wyświetlana we właściwości MessageData wszystkich zdarzeń skojarzonych z tą subskrypcją.

Właściwości parametru

Typ:PSObject
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Namespace

Określa przestrzeń nazw klasy WMI.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:NS

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Query

Określa zapytanie w języku WMI Query Language (WQL), które identyfikuje klasę zdarzeń usługi WMI, na przykład: select * from __InstanceDeletionEvent.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

query
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SourceIdentifier

Określa nazwę wybraną dla subskrypcji. Wybrana nazwa musi być unikatowa w bieżącej sesji. Wartość domyślna to identyfikator GUID przypisywany przez program Windows PowerShell.

Wartość tego parametru jest wyświetlana w wartości właściwości SourceIdentifier obiektu subskrybenta i wszystkich obiektów zdarzeń skojarzonych z tą subskrypcją.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:100
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SupportEvent

Wskazuje, że to polecenie cmdlet ukrywa subskrypcję zdarzeń. 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.

Aby wyświetlić lub anulować subskrypcję utworzoną przy użyciu parametru SupportEvent, określ parametr Force poleceń cmdlet Get-EventSubscriber i Unregister-Event.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Timeout

Określa, jak długo program Windows PowerShell czeka na zakończenie tego polecenia.

Wartość domyślna 0 (zero) oznacza, że nie ma limitu czasu i powoduje, że program Windows PowerShell czeka na czas nieokreślony.

Właściwości parametru

Typ:Int64
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Limit czasu protokołu MSec

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

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

Dane wyjściowe

None

To polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

  • Aby użyć tego polecenia cmdlet w systemie Windows Vista lub nowszej wersji systemu operacyjnego Windows, uruchom program Windows PowerShell przy użyciu opcji Uruchom jako administrator.

    Zdarzenia, subskrypcje zdarzeń i kolejka zdarzeń istnieją tylko w bieżącej sesji. Jeśli zamkniesz bieżącą sesję, kolejka zdarzeń zostanie usunięta, a subskrypcja zostanie anulowana.