Delen via


New-Event

Hiermee maakt u een nieuwe gebeurtenis.

Syntax

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

Description

Met de cmdlet New-Event wordt een nieuwe aangepaste gebeurtenis gemaakt.

U kunt aangepaste gebeurtenissen gebruiken om gebruikers te informeren over statuswijzigingen in uw programma en elke wijziging die uw programma kan detecteren, waaronder hardware- of systeemomstandigheden, toepassingsstatus, schijfstatus, netwerkstatus of de voltooiing van een achtergrondtaak.

Aangepaste gebeurtenissen worden automatisch toegevoegd aan de gebeurteniswachtrij in uw sessie wanneer ze worden gegenereerd; u hoeft zich niet op hen te abonneren. Als u echter een gebeurtenis wilt doorsturen naar de lokale sessie of een actie wilt opgeven om op de gebeurtenis te reageren, gebruikt u de cmdlet Register-EngineEvent om u te abonneren op de aangepaste gebeurtenis.

Wanneer u zich abonneert op een aangepaste gebeurtenis, wordt de gebeurtenisabonnee toegevoegd aan uw sessie. Als u het gebeurtenisabonnement annuleert met behulp van de cmdlet Unregister-Event, worden de gebeurtenisabonnee en de aangepaste gebeurtenis uit de sessie verwijderd. Als u zich niet abonneert op de aangepaste gebeurtenis, moet u de programmavoorwaarden wijzigen of de Windows PowerShell-sessie sluiten om de gebeurtenis te verwijderen.

Voorbeelden

Voorbeeld 1: een nieuwe gebeurtenis Creatie in de gebeurteniswachtrij

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

Met deze opdracht maakt u een nieuwe gebeurtenis in de Windows PowerShell gebeurteniswachtrij. Er wordt een Windows.Timer-object gebruikt om de gebeurtenis te verzenden.

Voorbeeld 2: Een gebeurtenis genereren als reactie op een andere gebeurtenis

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)
   }
}

Deze voorbeeldfunctie maakt gebruik van de cmdlet New-Event om een gebeurtenis te genereren als reactie op een andere gebeurtenis. De opdracht gebruikt de cmdlet Register-ObjectEvent om u te abonneren op de WMI-gebeurtenis (Windows Management Instrumentation) die wordt gegenereerd wanneer een nieuw proces wordt gemaakt. De opdracht gebruikt de parameter Action van de cmdlet om de cmdlet New-Event aan te roepen, waardoor de nieuwe gebeurtenis wordt gemaakt.

Omdat de gebeurtenissen die New-Event genereert automatisch worden toegevoegd aan de Windows PowerShellevent-wachtrij, hoeft u zich niet te registreren voor die gebeurtenis.

Parameters

-EventArguments

Hiermee geeft u een object op dat opties voor de gebeurtenis bevat.

Type:PSObject[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MessageData

Hiermee geeft u aanvullende gegevens op die zijn gekoppeld aan de gebeurtenis. De waarde van deze parameter wordt weergegeven in de eigenschap MessageData van het gebeurtenisobject.

Type:PSObject
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Sender

Hiermee geeft u het object op dat de gebeurtenis genereert. De standaardinstelling is de Windows PowerShell-engine.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Hiermee geeft u een naam voor de nieuwe gebeurtenis. Deze parameter is vereist en moet uniek zijn in de sessie.

De waarde van deze parameter wordt weergegeven in de eigenschap SourceIdentifier van de gebeurtenissen.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen invoer doorsnijden naar deze cmdlet.

Uitvoerwaarden

PSEventArgs

Notities

De nieuwe aangepaste gebeurtenis, het gebeurtenisabonnement en de gebeurteniswachtrij bestaan alleen in de huidige sessie. Als u de huidige sessie sluit, wordt de gebeurteniswachtrij verwijderd en wordt het gebeurtenisabonnement geannuleerd.