New-Event
Erstellt ein neues Ereignis.
Syntax
New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]
Beschreibung
Mit dem Cmdlet "New-Event" wird ein neues benutzerdefiniertes Ereignis erstellt.
Sie können Benutzer mithilfe benutzerdefinierter Ereignisse über Statusänderungen im Programm und jede Änderung benachrichtigen, die das Programm erkennt, z. B. Hardware- oder Systembedingungen, Anwendungsstatus, Datenträgerstatus, Netzwerkstatus oder Abschluss eines Hintergrundauftrags.
Benutzerdefinierte Ereignisse werden automatisch der Ereigniswarteschlange in der Sitzung hinzugefügt, wenn sie ausgelöst werden. Sie müssen nicht abonniert werden. Wenn Sie jedoch ein Ereignis an die lokale Sitzung weiterleiten oder eine Aktion als Reaktion auf das Ereignis angeben möchten, abonnieren Sie das benutzerdefinierte Ereignis mithilfe des Cmdlets "Register-EngineEvent".
Wenn Sie ein benutzerdefiniertes Ereignis abonnieren, wird der Sitzung der Ereignisabonnent hinzugefügt. Wenn Sie das Ereignisabonnement mit dem Cmdlet "Unregister-Event" abbrechen, werden der Ereignisabonnent und das benutzerdefiniertes 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.
Parameter
-EventArguments <PSObject[]>
Gibt ein Objekt an, das Optionen für das Ereignis enthält.
Erforderlich? |
false |
Position? |
3 |
Standardwert |
Keiner |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-MessageData <psobject>
Gibt weitere dem Ereignis zugeordnete Daten an. Der Wert dieses Parameters wird in der MessageData-Eigenschaft des Ereignisobjekts angezeigt.
Erforderlich? |
false |
Position? |
4 |
Standardwert |
Keiner |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Sender <psobject>
Gibt das Objekt an, das das Ereignis auslöst. Der Standardwert ist das Windows PowerShell-Modul.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
Keiner |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-SourceIdentifier <string>
Gibt einen Namen für das neue Ereignis an. Dieser Parameter ist erforderlich, und er muss in der Sitzung eindeutig sein.
Der Wert dieses Parameters wird in der SourceIdentifier-Eigenschaft der Ereignisse angezeigt.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
Keiner Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden. |
Ausgaben |
System.Management.Automation.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.
Beispiel 1
C:\PS>new-event -sourceidentifier Timer -sender windows.timer -messagedata "Test"
Beschreibung
-----------
Mit diesem Befehl wird ein neues Ereignis in der Windows PowerShell-Ereigniswarteschlange erstellt. Das Ereignis wird mithilfe eines Windows.Timer-Objekts gesendet.
Beispiel 2
C:\PS>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)
}
}
Beschreibung
-----------
In dieser Beispielfunktion wird das Cmdlet "New-Event" verwendet, um ein Ereignis als Reaktion auf ein anderes Ereignis auszulösen. Im Befehl wird das WMI-Ereignis (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation), das beim Erstellen eines neuen Prozesses ausgelöst wird, mit dem Cmdlet "Register-ObjectEvent" abonniert. Das Cmdlet "New-Event", das das neue Ereignis erstellt, wird mit dem Action-Parameters des Cmdlet aufgerufen.
Da die von New-Event ausgelösten Ereignisse automatisch der Windows PowerShell-Ereigniswarteschlange hinzugefügt werden, müssen Sie dieses Ereignis nicht abonnieren.
Siehe auch
Konzepte
Register-ObjectEvent
Register-EngineEvent
Register-WmiEvent
Unregister-Event
Get-Event
Remove-Event
Wait-Event