Freigeben über


New-Event

Erstellt ein neues Ereignis.

Syntax

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

Beschreibung

Das Cmdlet New-Event 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 ein Ereignis jedoch an die lokale Sitzung weiterleiten oder eine Aktion zur Reaktion auf das Ereignis angeben möchten, 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 stornieren, 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 Windows PowerShell-Sitzung schließen.

Beispiele

Beispiel 1: Create eines neuen Ereignisses in der Ereigniswarteschlange

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

Dieser Befehl erstellt ein neues Ereignis in der Windows PowerShell-Ereigniswarteschlange. 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 Cmdlet New-Event , um ein Ereignis als Reaktion auf ein anderes Ereignis auszulösen. Der Befehl verwendet das Register-ObjectEvent-Cmdlet zum Abonnieren des Ereignisses der Windows-Verwaltungsinstrumentation (WMI), das beim Erstellen eines neuen Prozesses ausgelöst wird. Der Befehl verwendet den Action-Parameter des Cmdlets, um das Cmdlet New-Event aufzurufen, das das neue Ereignis erstellt.

Da die Von New-Event ausgelösten Ereignisse automatisch der Windows PowerShellevent-Warteschlange 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 die Windows PowerShell-Engine.

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

Eingaben können nicht an dieses Cmdlet weitergereicht werden.

Ausgaben

PSEventArgs

Hinweise

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.