Get-EventSubscriber

Geçerli oturumdaki olay abonelerini alır.

Syntax

BySource (Varsayılan)

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

ById

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

Description

Get-EventSubscriber cmdlet'i geçerli oturumdaki olay abonelerini alır.

Olay kaydetme cmdlet'ini kullanarak bir olaya abone olduğunuzda, Windows PowerShell oturumunuza bir olay abonesi eklenir ve abone olduğunuz olaylar her tetiklendiğinde olay kuyruğunuza eklenir. Olay aboneliğini iptal etmek için Unregister-Event cmdlet'ini kullanarak olay abonesini silin.

Örnekler

Örnek 1: Zamanlayıcı olayının olay abonesini alma

Bu örnekte, zamanlayıcı olayının olay abonesini almak için bir Get-EventSubscriber komutu kullanılır.

İlk komut, zamanlayıcı nesnesinin bir örneğini oluşturmak için New-Object cmdlet'ini kullanır. Yeni zamanlayıcı nesnesini $Timer değişkenine kaydeder.

İkinci komut, zamanlayıcı nesneleri için kullanılabilen olayları görüntülemek için Get-Member cmdlet'ini kullanır. komutu, event değeriyle Get-Member cmdlet'in Type parametresini kullanır.

$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

Üçüncü komut, zamanlayıcı nesnesinde geçen Register-ObjectEvent olayına kaydolmak için cmdlet'ini kullanır.

Dördüncü komut, geçen Get-EventSubscriber olay abonesini almak için cmdlet'ini kullanır.

Örnek 2: Olay abonesinin Action özelliğinde PSEventJob'ta dinamik modülü kullanma

Bu örnekte, olay abonesinin Eylem özelliğindeki PSEventJob nesnesindeki dinamik modülün nasıl kullanılacağı gösterilmektedir.

İlk komut, zamanlayıcı nesnesi oluşturmak için New-Object cmdlet'ini kullanır. İkinci komut zamanlayıcının aralığını 500 (milisaniye) olarak ayarlar.

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

Üçüncü komut, zamanlayıcı nesnesinin Geçen olayını kaydetmek için Register-ObjectEvent cmdlet'ini kullanır. komutu, olayı işleyen bir eylem içerir. Zamanlayıcı aralığı her geçtiğinde bir olay oluşturulur ve eylemdeki komutlar çalıştırılır. Bu durumda, Get-Random cmdlet'i 0 ile 100 arasında rastgele bir sayı oluşturur ve $Random değişkenine kaydeder. Olayın kaynak tanımlayıcısı Timer.Random'dır.

bir komutunda Register-ObjectEvent parametresi kullandığınızda, komut eylemi temsil eden bir PSEventJob nesnesi döndürür.

Dördüncü komut zamanlayıcıyı etkinleştirir.

Beşinci komut, Get-EventSubscriber olayının olay abonesini almak için cmdlet'ini kullanır. Olay abone nesnesini $Subscriber değişkenine kaydeder.

Altıncı komut, olay abone nesnesinin Action özelliğinin bir PSEventJob nesnesi içerdiğini gösterir. Aslında, komutunun döndürdüğünü aynı Register-ObjectEvent nesnesi içerir.

Yedinci komut, bir listedeki Action özelliğinde Format-List nesnesinin tüm özelliklerini görüntülemek için cmdlet'ini kullanır. Sonuç, PSEventJob nesnesinin eylemi uygulayan dinamik betik modülünü içeren bir Module özelliğine sahip olduğunu gösterir.

Kalan komutlar, modüldeki komutu çağırmak ve $Random değişkeninin değerini görüntülemek için çağrı işlecini (&) kullanır. Dışarı aktarılmayan komutlar dahil olmak üzere modüldeki herhangi bir komutu çağırmak için çağrı işlecini kullanabilirsiniz. Bu durumda komutlar, Geçen olay gerçekleştiğinde oluşturulan rastgele sayıyı gösterir.

Modüller hakkında daha fazla bilgi için bkz. about_Modules.

Örnek 3: Gizli olay abonelerini alma

Bu örnek, PowerShell.Exiting olayı için bir olay abonesi kaydeder. Abonelik, olay abonesini cmdlet'in varsayılan çıkışından gizleyen Get-EventSubscriber parametresi kullanılarak kaydedilir. Gizli aboneler de dahil olmak üzere tüm olay abonelerini almak için Force parametresini kullanmanız gerekir.

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

Parametreler

-Force

Bu cmdlet'in, , Register-ObjectEventve Register-WmiEventRegister-EngineEvent parametresi kullanılarak gizlenen olaylar için aboneler de dahil olmak üzere tüm olay abonelerini aldığını gösterir.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:1
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-SourceIdentifier

Yalnızca olay abonelerini alan SourceIdentifier özellik değerini belirtir. Varsayılan olarak, Get-EventSubscriber oturumdaki tüm olay abonelerini alır. Joker karakterlere izin verilmez. Bu parametre büyük/küçük harfe duyarlıdır.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

BySource
Position:0
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-SubscriptionId

Bu cmdlet'in aldığı abonelik tanımlayıcısını belirtir. Varsayılan olarak, Get-EventSubscriber oturumdaki tüm olay abonelerini alır.

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Kimlik

Parametre kümeleri

ById
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

None

Nesneleri bu cmdlet'e yöneltemezsiniz.

Çıkışlar

PSEventSubscriber

Bu cmdlet, her olay abonesi için bir PSEventSubscriber nesnesi döndürür.

Notlar

Özel bir olay oluşturan New-Event cmdlet'i abone oluşturmaz. Bu nedenle, Get-EventSubscriber cmdlet'i bu olaylar için bir abone nesnesi bulamaz. Ancak, özel bir olaya abone olmak (olayı iletmek veya bir eylem belirtmek için) Register-EngineEvent cmdlet'ini kullanırsanız Get-EventSubscriberRegister-EngineEvent oluşturduğu aboneyi bulur.

Olaylar, olay abonelikleri ve olay kuyruğu yalnızca geçerli oturumda bulunur. Mevcut oturumu kapatırsanız, etkinlik kuyruğu silinir ve etkinlik aboneliği iptal edilir.