New-Event

Erstellt ein neues Ereignis.

Syntax

Default (Standard)

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

Beschreibung

Das New-Event Cmdlet erstellt ein neues benutzerdefiniertes Ereignis.

Sie können benutzerdefinierte Ereignisse verwenden, um Benutzer über Statusänderungen in Ihrem Programm zu informieren, und alle Änderungen, die Ihr Programm erkennen kann, einschließlich Hardware- oder Systembedingungen, Anwendungsstatus, Datenträgerstatus, Netzwerkstatus oder Abschluss eines Hintergrundauftrags.

Benutzerdefinierte Ereignisse werden automatisch der Ereigniswarteschlange in Ihrer Sitzung hinzugefügt, wenn sie ausgelöst werden. Sie müssen sie nicht abonnieren. 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 Zu 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 eine Windows. Timer-Objekt zum Senden des Ereignisses.

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 Cmdlet Register-ObjectEvent, um das ereignis Windows Verwaltungsinstrumentation (WMI) zu abonnieren, das beim Erstellen eines neuen Prozesses ausgelöst 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.

Parametereigenschaften

Typ:

PSObject[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:2
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-MessageData

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

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:3
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Sender

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

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:1
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

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.