Udostępnij za pośrednictwem


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

PSEventArgs

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.