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

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.

$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ényre.

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

2. példa: A PSEventJob 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 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.

$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ű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 a Timer.Random 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 visszaadott.

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.

3. példa: Rejtett esemény-előfizetők lekérése

Ez a példa regisztrál egy esemény-előfizetőt a PowerShell.Exiting eseményhez. Az előfizetés regisztrálva van a SupportEvent paraméterrel, amely elrejti az esemény-előfizetőt a Get-EventSubscriber parancsmag alapértelmezett kimenetéből. A Force paramétert kell használnia az összes esemény-előfizető lekéréséhez, beleértve a rejtett előfizetőket is.

Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
    Get-History | Export-Clixml D:\temp\history.clixml
}
Get-EventSubscriber  # No output - must use -Force
Get-EventSubscriber -Force
SubscriptionId   : 1
SourceObject     :
EventName        :
SourceIdentifier : PowerShell.Exiting
Action           : System.Management.Automation.PSEventJob
HandlerDelegate  :
SupportEvent     : True
ForwardEvent     : False

Paraméterek

-Force

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

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 az 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 lehet objektumokat csövezni.

Kimenetek

PSEventSubscriber

Ez a parancsmag egy PSEventSubscriber objektumot ad vissza minden esemény-előfizetőhöz.

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ásához vagy egy művelet megadásához), Get-EventSubscriber megkeresi a Register-EngineEvent létrehozott 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.