New-Event
Hiermee maakt u een nieuwe gebeurtenis.
Syntaxis
Default (Standaard)
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 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 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 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 maakt gebruik van de cmdlet New-Event om een gebeurtenis te genereren als reactie op een andere gebeurtenis. De opdracht gebruikt de Register-ObjectEvent-cmdlet om u in te schrijven voor de WMI-gebeurtenis (Windows Management Instrumentation) die wordt geactiveerd wanneer een nieuw proces wordt gecreƫerd. De opdracht maakt gebruik van de parameter Action van de cmdlet om de New-Event cmdlet aan te roepen, waarmee de nieuwe gebeurtenis wordt gemaakt.
Omdat de gebeurtenissen die New-Event 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.
Parametereigenschappen
| Type: | PSObject[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 2 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 3 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Sender
Hiermee geeft u het object op dat de gebeurtenis genereert. De standaardwaarde is de PowerShell-engine.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 1 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
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.