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
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.