Delen via


New-Event

Hiermee maakt u een nieuwe gebeurtenis.

Syntaxis

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

Description

De New-Event cmdlet maakt een nieuwe aangepaste gebeurtenis.

U kunt aangepaste gebeurtenissen gebruiken om gebruikers op de hoogte te stellen van statuswijzigingen in uw programma en elke wijziging die uw programma kan detecteren, waaronder hardware- of systeemvoorwaarden, toepassingsstatus, schijfstatus, netwerkstatus of 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 Register-EngineEvent cmdlet 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 Unregister-Event cmdlet, 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 PowerShell-sessie sluiten om de gebeurtenis te verwijderen.

Voorbeelden

Voorbeeld 1: Een nieuwe gebeurtenis maken in de gebeurteniswachtrij

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

Met deze opdracht maakt u een nieuwe gebeurtenis in de 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 gebruikt de New-Event cmdlet om een gebeurtenis te genereren als reactie op een andere gebeurtenis. De opdracht gebruikt de Register-ObjectEvent cmdlet om u te abonneren op de WMI-gebeurtenis (Windows Management Instrumentation) die wordt gegenereerd wanneer een nieuw proces wordt gemaakt. De opdracht gebruikt de actieparameter van de cmdlet om de New-Event cmdlet aan te roepen, waardoor de nieuwe gebeurtenis wordt gemaakt.

Omdat de gebeurtenissen die New-Event worden gegenereerd automatisch worden toegevoegd aan de PowerShell-gebeurteniswachtrij, 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Sender

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

Type:PSObject
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt geen objecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

PSEventArgs

Notities

Er zijn geen gebeurtenisbronnen beschikbaar op de Linux- of macOS-platforms.

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.