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
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.
Ähnliche Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für