New-Event
Skapar en ny händelse.
Syntax
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Description
Cmdleten New-Event
skapar en ny anpassad händelse.
Du kan använda anpassade händelser för att meddela användare om tillståndsändringar i programmet och eventuella ändringar som programmet kan identifiera, inklusive maskinvaru- eller systemförhållanden, programstatus, diskstatus, nätverksstatus eller slutförande av ett bakgrundsjobb.
Anpassade händelser läggs automatiskt till i händelsekön i din session när de aktiveras. behöver du inte prenumerera på dem. Men om du vill vidarebefordra en händelse till den lokala sessionen eller ange en åtgärd för att svara på händelsen använder du cmdleten Register-EngineEvent
för att prenumerera på den anpassade händelsen.
När du prenumererar på en anpassad händelse läggs händelseprenumeranten till i sessionen. Om du avbryter händelseprenumerationen med hjälp av cmdleten Unregister-Event
tas händelseprenumeranten och den anpassade händelsen bort från sessionen. Om du inte prenumererar på den anpassade händelsen måste du ändra programvillkoren eller stänga PowerShell-sessionen för att kunna ta bort händelsen.
Exempel
Exempel 1: Skapa en ny händelse i händelsekön
PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"
Det här kommandot skapar en ny händelse i PowerShell-händelsekön. Den använder ett Windows.Timer-objekt för att skicka händelsen.
Exempel 2: Skapa en händelse som svar på en annan händelse
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)
}
}
Den här exempelfunktionen använder cmdleten New-Event
för att generera en händelse som svar på en annan händelse. Kommandot använder cmdleten Register-ObjectEvent
för att prenumerera på WMI-händelsen (Windows Management Instrumentation) som aktiveras när en ny process skapas. Kommandot använder åtgärdsparametern för cmdleten för att anropa cmdleten New-Event
, vilket skapar den nya händelsen.
Eftersom de händelser som New-Event
genererar läggs till automatiskt i PowerShell-händelsekön behöver du inte registrera dig för den händelsen.
Parametrar
-EventArguments
Anger ett objekt som innehåller alternativ för händelsen.
Type: | PSObject[] |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Anger ytterligare data som är associerade med händelsen. Värdet för den här parametern visas i egenskapen MessageData för händelseobjektet.
Type: | PSObject |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Sender
Anger det objekt som genererar händelsen. Standardvärdet är PowerShell-motorn.
Type: | PSObject |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Anger ett namn för den nya händelsen. Den här parametern krävs och måste vara unik i sessionen.
Värdet för den här parametern visas i egenskapen SourceIdentifier för händelserna.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka indata till denna cmdlet.
Utdata
Kommentarer
Inga händelsekällor är tillgängliga på Linux- eller macOS-plattformarna.
Den nya anpassade händelsen, händelseprenumerationen och händelsekön finns bara i den aktuella sessionen. Om du stänger den aktuella sessionen ignoreras händelsekön och händelseprenumerationen avbryts.