Get-EventSubscriber

Lekéri az esemény előfizetőit az aktuális munkamenetben.

Syntax

Get-EventSubscriber
   [[-SourceIdentifier] <String>]
   [-Force]
   [<CommonParameters>]
Get-EventSubscriber
   [-SubscriptionId] <Int32>
   [-Force]
   [<CommonParameters>]

Description

A Get-EventSubscriber parancsmag lekéri az esemény-előfizetőket az aktuális munkamenetben.

Amikor eseményre regisztrál egy eseményre egy eseményregisztrálási parancsmaggal, a rendszer hozzáad egy esemény-előfizetőt a Windows PowerShell-munkamenethez, és az események, amelyekre feliratkozott, fel lesznek véve az eseménysorba, amikor azok elő lettek hozva. Az esemény-előfizetés lemondásához törölje az esemény-előfizetőt a Unregister-Event parancsmag használatával.

Példák

1. példa: Esemény-előfizető lekérése időzítőeseményhez

Ez a példa egy Get-EventSubscriber parancs használatával lekéri az esemény-előfizetőt egy időzítőeseményhez.

Az első parancs a New-Object parancsmaggal hozza létre az időzítőobjektum egy példányát. Menti az új időzítőobjektumot a $Timer változóban.

A második parancs a Get-Member parancsmaggal jeleníti meg az időzítőobjektumok számára elérhető eseményeket. A parancs a parancsmag Type paraméterét Get-Member használja eseményértékkel.

$Timer = New-Object Timers.Timer
$Timer | Get-Member -Type Event

TypeName: System.Timers.Timer

Name     MemberType Definition
----     ---------- ----------
Disposed Event      System.EventHandler Disposed(System.Object, System.EventArgs)
Elapsed  Event      System.Timers.ElapsedEventHandler Elapsed(System.Object, System.Timers.ElapsedEventArgs)

Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Elapsed
Get-EventSubscriber

SubscriptionId   : 4
SourceObject     : System.Timers.Timer
EventName        : Elapsed
SourceIdentifier : Timer.Elapsed
Action           :
HandlerDelegate  :
SupportEvent     : False
ForwardEvent     : False

A harmadik parancs a Register-ObjectEvent parancsmaggal regisztrál az időzítőobjektum eltelt eseményére.

A negyedik parancs a Get-EventSubscriber parancsmaggal lekéri az esemény-előfizetőt az Eltelt eseményhez.

2. példa: A P Standard kiadás ventJob dinamikus moduljának használata az esemény-előfizető Művelet tulajdonságában

Ez a példa bemutatja, hogyan használhatja a dinamikus modult a P Standard kiadás ventJob objektumban az esemény-előfizető Művelet tulajdonságában.

Az első parancs a New-Object parancsmaggal hoz létre egy időzítőobjektumot. A második parancs az időzítő intervallumát 500-ra (ezredmásodpercre) állítja.

$Timer = New-Object Timers.Timer
$Timer.Interval = 500
$params = @{
    InputObject = $Timer
    EventName = 'Elapsed'
    SourceIdentifier = 'Timer.Random'
    Action = { $Random = Get-Random -Min 0 -Max 100 }
}
Register-ObjectEvent @params

Id  Name           State      HasMoreData  Location  Command
--  ----           -----      -----------  --------  -------
3   Timer.Random   NotStarted False                  $Random = Get-Random ...

$Timer.Enabled = $True
$Subscriber = Get-EventSubscriber -SourceIdentifier Timer.Random
($Subscriber.action).gettype().fullname

System.Management.Automation.PSEventJob

$Subscriber.action | Format-List -Property *

State         : Running
Module        : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0
StatusMessage :
HasMoreData   : True
Location      :
Command       : $random = Get-Random -Min 0 -Max 100
JobStateInfo  : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : 88944290-133d-4b44-8752-f901bd8012e2
Id            : 1
Name          : Timer.Random
ChildJobs     : {}
...

& $Subscriber.action.module {$Random}

A harmadik parancs a Register-ObjectEvent parancsmaggal regisztrálja az időzítőobjektum eltelt eseményét. A parancs tartalmaz egy műveletet, amely kezeli az eseményt. Amikor az időzítő időköze el nem telik, egy esemény keletkezik, és a művelet parancsai futnak. Ebben az esetben a Get-Random parancsmag véletlenszerű számot hoz létre 0 és 100 között, és menti a $Random változóba. Az esemény forrásazonosítója Timer.Random.

Ha műveletparaméterthasznál egy Register-ObjectEvent parancsban, a parancs egy P Standard kiadás ventJob objektumot ad vissza, amely a műveletet jelöli.

A negyedik parancs engedélyezi az időzítőt.

Az ötödik parancs a Get-EventSubscriber parancsmaggal lekéri a Timer.Random esemény előfizetőjének adatait. Menti az esemény-előfizető objektumot a $Subscriber változóban.

A hatodik parancs azt mutatja, hogy az esemény-előfizető objektum Művelet tulajdonsága tartalmaz egy P Standard kiadás ventJob objektumot. Valójában ugyanazt a P Standard kiadás ventJob objektumot tartalmazza, amelyet a Register-ObjectEvent parancs visszaadott.

A hetedik parancs a Format-List parancsmaggal jeleníti meg a P Standard kiadás ventJob objektum összes tulajdonságát egy listában a Művelet tulajdonságban. Az eredményből kiderül, hogy a P Standard kiadás ventJob objektum egy Modul tulajdonságot tartalmaz, amely egy dinamikus szkriptmodult tartalmaz, amely implementálja a műveletet.

A többi parancs a híváskezelővel (&) hívja meg a parancsot a modulban, és megjeleníti a $Random változó értékét. A híváskezelővel bármely parancsot meghívhat egy modulban, beleértve a nem exportált parancsokat is. Ebben az esetben a parancsok az eltelt esemény bekövetkezésekor generált véletlenszerű számot jelenítik meg.

A modulokkal kapcsolatos további információkért lásd: about_Modules.

Paraméterek

-Force

Azt jelzi, hogy ez a parancsmag lekéri az összes esemény-előfizetőt, beleértve a rejtett események előfizetőit is a SupportEvent paraméterrel.Register-EngineEventRegister-WmiEventRegister-ObjectEvent

Type:SwitchParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Megadja a SourceIdentifier tulajdonság értékét, amely csak az esemény-előfizetőket kapja meg. Alapértelmezés szerint Get-EventSubscriber lekéri az összes esemény-előfizetőt a munkamenetben. Helyettesítő karakterek használata nem engedélyezett. Ez a paraméter megkülönbözteti a kis- és nagybetűk értékét.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SubscriptionId

Megadja a parancsmag által lekért előfizetés-azonosítót. Alapértelmezés szerint Get-EventSubscriber lekéri az összes esemény-előfizetőt a munkamenetben.

Type:Int32
Aliases:Id
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Bevitelek

None

Ehhez a parancsmaghoz nem lehet objektumokat csövezni.

Kimenetek

PSEventSubscriber

Ez a parancsmag egy P Standard kiadás ventSubscriber objektumot ad vissza minden esemény-előfizetőhöz.

Jegyzetek

Az New-Event egyéni eseményt létrehozó parancsmag nem hoz létre előfizetőt. Ezért a Get-EventSubscriber parancsmag nem talál előfizetői objektumot ezekhez az eseményekhez. Ha azonban a Register-EngineEvent parancsmaggal feliratkozik egy egyéni eseményre (az esemény továbbítása vagy egy művelet megadása céljából), Get-EventSubscriber megkeresi a generált előfizetőt Register-EngineEvent .

Az események, az esemény-előfizetések és az eseménysor csak az aktuális munkamenetben léteznek. Ha bezárja az aktuális munkamenetet, a rendszer elveti az eseménysort, és megszakítja az esemény-előfizetést.