Dela via


New-Event

Skapar en ny händelse.

Syntax

Default (Standard)

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 aktiveras när en ny process skapas. Kommandot använder parametern Action 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 automatiskt till i PowerShell-händelsekön behöver du inte registrera dig för händelsen.

Parametrar

-EventArguments

Anger ett objekt som innehåller alternativ för händelsen.

Parameteregenskaper

Typ:

PSObject[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:2
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:PSObject
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:3
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Sender

Anger det objekt som genererar händelsen. Standardvärdet är PowerShell-motorn.

Parameteregenskaper

Typ:PSObject
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:1
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument: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.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:0
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

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.