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áltelő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.