Megosztás a következőn keresztül:


Get-EventSubscriber

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

Syntax

BySource (Alapértelmezett)

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

ById

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

PS C:\> $Timer = New-Object Timers.Timer
PS C:\> $Timer | Get-Member -Type Event
PS C:\> Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Elapsed
PS C:\> Get-EventSubscriber
PS C:\> $Timer = New-Object Timers.Timer
PS C:\> $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) PS C:\> Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Elapsed
PS C:\> Get-EventSubscriber
SubscriptionId   : 4
SourceObject     : System.Timers.Timer
EventName        : Elapsed
SourceIdentifier : Timer.Elapsed
Action           :
HandlerDelegate  :
SupportEvent     : False
ForwardEvent     : False

Ez a példa egy Get-EventSubscriber paranccsal lekéri az esemény-előfizetőt egy időzítőeseményhez.

Az első parancs a New-Object parancsmaggal hoz létre egy időzítőobjektum-példányt. 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 Get-Member parancsmag Típus paraméterét használja eseményértékkel.

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

A negyedik parancs a Get-EventSubscriber parancsmagot használja az esemény előfizetőjének lekéréséhez az Eltelt eseményhez.

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

PS C:\> $Timer = New-Object Timers.Timer
PS C:\> $Timer.Interval = 500
PS C:\> Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Random -Action { $Random = Get-Random -Min 0 -Max 100 }

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

PS C:\> $Timer.Enabled = $True
PS C:\> $Subscriber = Get-EventSubscriber -SourceIdentifier Timer.Random
PS C:\> ($Subscriber.action).gettype().fullname
System.Management.Automation.PSEventJob
PS C:\> $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     : {}
...

PS C:\> & $Subscriber.action.module {$Random}
96
PS C:\> & $Subscriber.action.module {$Random}
23

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

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

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űvelet paramétert használ egy Register-ObjectEvent parancsban, a parancs egy PSEventJob 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 parancsmagot használja az Timer.Random esemény esemény-előfizetőjének lekéréséhez. 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 PSEventJob objektumot. Valójában ugyanazt a PSEventJob objektumot tartalmazza, amelyet a Register-ObjectEvent parancs adott vissza.

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

A többi parancs a híváskezelő (&) használatával 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 Register-ObjectEvent, a Register-WmiEvent és a Register-EngineEvent SupportEvent paraméterével rejtett események előfizetőit is.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

BySource
Position:0
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:Int32
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Id

Paraméterkészletek

ById
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

None

Ehhez a parancsmaghoz nem csövezhet be bemenetet.

Kimenetek

PSEventSubscriber

Get-EventSubscriber egy objektumot ad vissza, amely az egyes esemény-előfizetőket jelöli.

Jegyzetek

  • Az egyéni eseményt létrehozó New-Event 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 Register-EngineEvent által generált előfizetőt.

    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.