Sdílet prostřednictvím


Get-EventSubscriber

Získá odběratele události v aktuální relaci.

Syntax

BySource (Výchozí)

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

ById

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

Description

Rutina Get-EventSubscriber získá odběratele událostí v aktuální relaci.

Když se přihlásíte k odběru události pomocí rutiny události Register, přidá se odběratel události do relace Windows PowerShellu a události, ke kterým jste se přihlásili, se přidají do fronty událostí při každém vyvolání. Pokud chcete zrušit odběr události, odstraňte odběratele události pomocí rutiny Unregister-Event.

Příklady

Příklad 1: Získání odběratele události pro událost časovače

Tento příklad používá příkaz Get-EventSubscriber k získání odběratele události pro událost časovače.

První příkaz používá rutinu New-Object k vytvoření instance objektu časovače. Uloží nový objekt časovače do proměnné $Timer.

Druhý příkaz používá rutinu Get-Member k zobrazení událostí, které jsou k dispozici pro objekty časovače. Příkaz používá parametr Type rutiny Get-Member s hodnotou Event.

$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

Třetí příkaz používá rutinu Register-ObjectEvent k registraci události Uplynulá u objektu časovače.

Čtvrtý příkaz používá rutinu Get-EventSubscriber k získání odběratele události Uplynulé události.

Příklad 2: Použití dynamického modulu v PSEventJob ve vlastnosti Akce odběratele události

Tento příklad ukazuje, jak používat dynamický modul v objektu PSEventJob ve vlastnosti Akce odběratele události.

První příkaz používá rutinu New-Object k vytvoření objektu časovače. Druhý příkaz nastaví interval časovače na 500 (milisekund).

$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}

Třetí příkaz používá rutinu Register-ObjectEvent k registraci uplynulé události objektu časovače. Příkaz obsahuje akci, která zpracovává událost. Při každém uplynutí intervalu časovače se vyvolá událost a příkazy v akci se spustí. V tomto případě rutina Get-Random vygeneruje náhodné číslo mezi 0 a 100 a uloží ho do proměnné $Random. Zdrojový identifikátor události je Timer.Random.

Při použití action parametr v Register-ObjectEvent příkazu vrátí příkaz PSEventJob objekt, který představuje akci.

Čtvrtý příkaz povolí časovač.

Pátý příkaz používá rutinu Get-EventSubscriber k získání odběratele události Timer.Random události. Uloží objekt odběratele události do proměnné $Subscriber.

Šestý příkaz ukazuje, že vlastnost Action objektu odběratel události obsahuje PSEventJob objektu. Ve skutečnosti obsahuje stejný PSEventJob objekt, který vrátil příkaz Register-ObjectEvent.

Sedmý příkaz používá rutinu Format-List k zobrazení všech vlastností PSEventJob objektu v action vlastnosti v seznamu. Výsledek zjistí, že objekt PSEventJob má vlastnost Modulu, která obsahuje modul dynamického skriptu, který implementuje akci.

Zbývající příkazy používají operátor volání (&) k vyvolání příkazu v modulu a zobrazení hodnoty proměnné $Random. Operátor volání můžete použít k vyvolání libovolného příkazu v modulu, včetně příkazů, které nejsou exportovány. V tomto případě příkazy zobrazují náhodné číslo, které se generuje, když dojde k události Uplynulá.

Další informace o modulech najdete v about_Modules.

Parametry

-Force

Označuje, že tato rutina získá všechny odběratele událostí, včetně odběratelů událostí, které jsou skryté pomocí SupportEvent parametru Register-ObjectEvent, Register-WmiEventa Register-EngineEvent.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:1
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-SourceIdentifier

Určuje hodnotu vlastnosti SourceIdentifier, která získá pouze odběratele událostí. Ve výchozím nastavení Get-EventSubscriber získá všechny odběratele událostí v relaci. Zástupné dokumentace nejsou povoleny. U tohoto parametru se rozlišují malá a velká písmena.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

BySource
Position:0
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-SubscriptionId

Určuje identifikátor předplatného, který tato rutina získá. Ve výchozím nastavení Get-EventSubscriber získá všechny odběratele událostí v relaci.

Vlastnosti parametru

Typ:Int32
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:identifikační číslo

Sady parametrů

ById
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

None

Do tohoto cmdletu nemůžete předávat objekty.

Výstupy

PSEventSubscriber

Tato rutina vrátí PSEventSubscriber objekt pro každého odběratele události.

Poznámky

Rutina New-Event, která vytvoří vlastní událost, negeneruje odběratele. Proto rutina Get-EventSubscriber pro tyto události nenajde objekt odběratele. Pokud ale použijete rutinu Register-EngineEvent k přihlášení k odběru vlastní události (k přeposílání události nebo k zadání akce), Get-EventSubscriber zjistí odběratele, který Register-EngineEvent vygeneruje.

Události, odběry událostí a fronta událostí existují pouze v aktuální relaci. Pokud zavřete aktuální sezení, fronta událostí se vyprázdní a odběr události se zruší.