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.
Typ: | PSObject[] |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MessageData
Gibt zusätzliche Daten an, die dem Ereignis zugeordnet sind. Der Wert dieses Parameters wird in der MessageData-Eigenschaft des Ereignisobjekts angezeigt.
Typ: | PSObject |
Position: | 3 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Sender
Gibt das Objekt an, das das Ereignis auslöst. Der Standardwert ist das PowerShell-Modul.
Typ: | PSObject |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
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.