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.