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-EngineEvent
Register-WmiEvent
Register-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
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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: