New-Event
Tworzy nowe zdarzenie.
Składnia
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Opis
Polecenie cmdlet New-Event
tworzy nowe zdarzenie niestandardowe.
Zdarzenia niestandardowe umożliwiają powiadamianie użytkowników o zmianach stanu w programie i wszelkich zmianach, które program może wykryć, w tym warunki sprzętowe lub systemowe, stan aplikacji, stan dysku, stan sieci lub ukończenie zadania w tle.
Zdarzenia niestandardowe są automatycznie dodawane do kolejki zdarzeń w sesji za każdym razem, gdy są wywoływane; nie trzeba ich subskrybować. Jeśli jednak chcesz przekazać zdarzenie do sesji lokalnej lub określić akcję odpowiadającą na zdarzenie, użyj polecenia cmdlet Register-EngineEvent
, aby zasubskrybować zdarzenie niestandardowe.
Po zasubskrybowaniu zdarzenia niestandardowego subskrybent zdarzenia zostanie dodany do sesji. Jeśli anulujesz subskrypcję zdarzeń przy użyciu polecenia cmdlet Unregister-Event
, subskrybent zdarzenia i zdarzenie niestandardowe zostaną usunięte z sesji. Jeśli nie subskrybujesz zdarzenia niestandardowego, aby usunąć zdarzenie, musisz zmienić warunki programu lub zamknąć sesję programu PowerShell.
Przykłady
Przykład 1: Tworzenie nowego zdarzenia w kolejce zdarzeń
PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"
To polecenie tworzy nowe zdarzenie w kolejce zdarzeń programu PowerShell. Do wysłania zdarzenia jest używany obiekt Windows.Timer.
Przykład 2. Zgłaszanie zdarzenia w odpowiedzi na inne zdarzenie
PS C:\> function Enable-ProcessCreationEvent
{
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
$Identifier = "WMI.ProcessCreated"
Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
{
[void] (New-Event -SourceID "PowerShell.ProcessCreated" -Sender $Args[0] -EventArguments $Args[1].SourceEventArgs.NewEvent.TargetInstance)
}
}
Ta przykładowa funkcja używa polecenia cmdlet New-Event
, aby zgłosić zdarzenie w odpowiedzi na inne zdarzenie. Polecenie używa polecenia cmdlet Register-ObjectEvent
do subskrybowania zdarzenia Instrumentacja zarządzania Windows (WMI), które jest zgłaszane podczas tworzenia nowego procesu. Polecenie używa parametru Action polecenia cmdlet w celu wywołania polecenia cmdlet New-Event
, które tworzy nowe zdarzenie.
Ponieważ zdarzenia, które New-Event
zgłaszają, są automatycznie dodawane do kolejki zdarzeń programu PowerShell, nie trzeba rejestrować się na potrzeby tego zdarzenia.
Parametry
-EventArguments
Określa obiekt zawierający opcje zdarzenia.
Typ: | PSObject[] |
Position: | 2 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-MessageData
Określa dodatkowe dane skojarzone ze zdarzeniem. Wartość tego parametru jest wyświetlana we właściwości MessageData obiektu zdarzenia.
Typ: | PSObject |
Position: | 3 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Sender
Określa obiekt, który zgłasza zdarzenie. Wartość domyślna to aparat programu PowerShell.
Typ: | PSObject |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-SourceIdentifier
Określa nazwę nowego zdarzenia. Ten parametr jest wymagany i musi być unikatowy w sesji.
Wartość tego parametru jest wyświetlana we właściwości SourceIdentifier zdarzenia.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.
Dane wyjściowe
Uwagi
Brak źródeł zdarzeń dostępnych na platformach Linux lub macOS.
Nowe zdarzenie niestandardowe, subskrypcja zdarzeń i kolejka zdarzeń istnieją tylko w bieżącej sesji. Jeśli zamkniesz bieżącą sesję, kolejka zdarzeń zostanie odrzucona i subskrypcja zdarzeń zostanie anulowana.