New-Event

Tworzy nowe zdarzenie.

Składnia

New-Event
   [-SourceIdentifier] <String>
   [[-Sender] <PSObject>]
   [[-EventArguments] <PSObject[]>]
   [[-MessageData] <PSObject>]
   [<CommonParameters>]

Opis

Polecenie New-Event cmdlet 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ą zgłaszane; nie musisz ich subskrybować. Jeśli jednak chcesz przekazać zdarzenie do sesji lokalnej lub określić akcję, aby odpowiedzieć na zdarzenie, użyj Register-EngineEvent polecenia cmdlet , aby zasubskrybować zdarzenie niestandardowe.

Po zasubskrybowaniu zdarzenia niestandardowego subskrybent zdarzenia zostanie dodany do sesji. Jeśli anulujesz subskrypcję zdarzeń przy użyciu Unregister-Event polecenia cmdlet , 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 New-Event polecenia cmdlet , aby zgłosić zdarzenie w odpowiedzi na inne zdarzenie. Polecenie używa Register-ObjectEvent polecenia cmdlet do subskrybowania zdarzenia Instrumentacja zarządzania Windows (WMI), które jest zgłaszane podczas tworzenia nowego procesu. Polecenie używa parametru Action polecenia cmdlet do wywołania New-Event polecenia cmdlet, które tworzy nowe zdarzenie.

Ponieważ zdarzenia, które zgłaszają New-Event , 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.

Type:PSObject[]
Position:2
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MessageData

Określa dodatkowe dane skojarzone ze zdarzeniem. Wartość tego parametru jest wyświetlana we właściwości MessageData obiektu zdarzenia.

Type:PSObject
Position:3
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Sender

Określa obiekt, który wywołuje zdarzenie. Wartość domyślna to aparat programu PowerShell.

Type:PSObject
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters: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 zdarzeń.

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.