New-Event

Erstellt ein neues Ereignis.

Syntax

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

Beschreibung

Das New-Event Cmdlet erstellt ein neues benutzerdefiniertes Ereignis.

Mit benutzerdefinierten Ereignissen können Sie die Benutzer über Statusänderungen in Ihrem Programm und jede Änderung benachrichtigen, die das Programm erkennen kann, einschließlich Hardware- oder Systembedingungen, Anwendungsstatus, Datenträgerstatus, Netzwerkstatus oder den Abschluss eines Auftrags im Hintergrund.

Benutzerdefinierte Ereignisse werden bei ihrer Auslösung automatisch der Warteschlange in der Sitzung hinzugefügt. Es ist kein Abonnement erforderlich. Wenn Sie jedoch ein Ereignis an die lokale Sitzung weiterleiten oder eine Aktion angeben möchten, die auf das Ereignis reagiert, verwenden Sie das Register-EngineEvent Cmdlet, um das benutzerdefinierte Ereignis zu abonnieren.

Wenn Sie ein benutzerdefiniertes Ereignis abonnieren, wird der Ereignisabonnent Ihrer Sitzung hinzugefügt. Wenn Sie das Ereignisabonnement mithilfe des Unregister-Event Cmdlets kündigen, werden der Ereignisabonnent und das benutzerdefinierte Ereignis aus der Sitzung gelöscht. Wenn Sie das benutzerdefinierte Ereignis nicht abonnieren, müssen Sie zum Löschen des Ereignisses die Programmbedingungen ändern oder die PowerShell-Sitzung schließen.

Beispiele

Beispiel 1: Erstellen eines neuen Ereignisses in der Ereigniswarteschlange

PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"

Mit diesem Befehl wird ein neues Ereignis in der PowerShell-Ereigniswarteschlange erstellt. Es verwendet ein Windows.Timer -Objekt, um das Ereignis zu senden.

Beispiel 2: Auslösen eines Ereignisses als Reaktion auf ein anderes Ereignis

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)
   }
}

Diese Beispielfunktion verwendet das New-Event Cmdlet, um ein Ereignis als Reaktion auf ein anderes Ereignis auszuheben. Der Befehl verwendet das Register-ObjectEvent Cmdlet, um das WMI-Ereignis (Windows Management Instrumentation) zu abonnieren, das ausgelöst wird, wenn ein neuer Prozess erstellt wird. Der Befehl verwendet den Aktionsparameter des Cmdlets, um das New-Event Cmdlet aufzurufen, das das neue Ereignis erstellt.

Da die ausgelösten Ereignisse New-Event automatisch zur PowerShell-Ereigniswarteschlange hinzugefügt werden, müssen Sie sich nicht für dieses Ereignis registrieren.

Parameter

-EventArguments

Gibt ein Objekt an, das Optionen für das Ereignis enthält.

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

-MessageData

Gibt zusätzliche Daten an, die dem Ereignis zugeordnet sind. Der Wert dieses Parameters wird in der MessageData-Eigenschaft des Ereignisobjekts angezeigt.

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

-Sender

Gibt das Objekt an, das das Ereignis auslöst. Der Standardwert ist das PowerShell-Modul.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Gibt einen Namen für das neue Ereignis an. Dieser Parameter ist erforderlich und muss in der Sitzung eindeutig sein.

Der Wert dieses Parameters wird in der SourceIdentifier-Eigenschaft der Ereignisse angezeigt.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

PSEventArgs

Hinweise

Auf den Linux- oder macOS-Plattformen sind keine Ereignisquellen verfügbar.

Das neue benutzerdefinierte Ereignis, das Ereignisabonnement und die Ereigniswarteschlange sind nur in der aktuellen Sitzung vorhanden. Wenn Sie die aktuelle Sitzung schließen, wird die Ereigniswarteschlange verworfen, und das Ereignisabonnement wird abgebrochen.