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 systemvillkor, 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. du behöver 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 om du vill 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 skapa 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 utlöses när en ny process skapas. Kommandot använder parametern Åtgärd för cmdleten för att anropa cmdleten New-Event , som skapar den nya händelsen.

Eftersom händelser som New-Event höjer 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 på 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 objekt till den här cmdleten.

Utdata

PSEventArgs

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.