Get-EventSubscriber
Mendapatkan pelanggan peristiwa dalam sesi saat ini.
Sintaks
Get-EventSubscriber
[[-SourceIdentifier] <String>]
[-Force]
[<CommonParameters>]
Get-EventSubscriber
[-SubscriptionId] <Int32>
[-Force]
[<CommonParameters>]
Deskripsi
Get-EventSubscriber
Cmdlet mendapatkan pelanggan peristiwa dalam sesi saat ini.
Saat Anda berlangganan peristiwa dengan menggunakan cmdlet peristiwa Daftar, pelanggan peristiwa ditambahkan ke sesi Windows PowerShell Anda, dan peristiwa tempat Anda berlangganan ditambahkan ke antrean peristiwa Anda setiap kali dinaikkan. Untuk membatalkan langganan peristiwa, hapus pelanggan peristiwa dengan menggunakan Unregister-Event
cmdlet.
Contoh
Contoh 1: Dapatkan pelanggan peristiwa untuk peristiwa timer
Contoh ini menggunakan Get-EventSubscriber
perintah untuk mendapatkan pelanggan peristiwa untuk peristiwa timer.
Perintah pertama menggunakan cmdlet untuk membuat instans New-Object
objek timer. Ini menyimpan objek timer baru dalam $Timer
variabel .
Perintah kedua menggunakan Get-Member
cmdlet untuk menampilkan peristiwa yang tersedia untuk objek timer. Perintah menggunakan parameter Get-Member
Jenis cmdlet dengan nilai Peristiwa.
$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
Perintah ketiga menggunakan Register-ObjectEvent
cmdlet untuk mendaftar untuk peristiwa Berlalu pada objek timer.
Perintah keempat menggunakan Get-EventSubscriber
cmdlet untuk mendapatkan pelanggan peristiwa untuk peristiwa Yang Berlalu .
Contoh 2: Gunakan modul dinamis di PSEventJob di properti Tindakan pelanggan peristiwa
Contoh ini menunjukkan cara menggunakan modul dinamis di objek PSEventJob di properti Tindakan pelanggan peristiwa.
Perintah pertama menggunakan New-Object
cmdlet untuk membuat objek timer. Perintah kedua mengatur interval timer menjadi 500 (milidetik).
$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}
Perintah ketiga menggunakan Register-ObjectEvent
cmdlet untuk mendaftarkan peristiwa Yang Berlalu dari objek timer. Perintah menyertakan tindakan yang menangani peristiwa. Setiap kali interval timer berlalu, peristiwa dinaikkan dan perintah dalam tindakan berjalan. Dalam hal ini, Get-Random
cmdlet menghasilkan angka acak antara 0 dan 100 dan menyimpannya dalam $Random
variabel. Pengidentifikasi sumber peristiwa adalah Timer.Random.
Saat Anda menggunakan parameter Tindakan dalam Register-ObjectEvent
perintah, perintah mengembalikan objek PSEventJob yang mewakili tindakan.
Perintah keempat memungkinkan timer.
Perintah kelima menggunakan Get-EventSubscriber
cmdlet untuk mendapatkan pelanggan peristiwa dari peristiwa Timer.Random . Ini menyimpan objek pelanggan peristiwa dalam $Subscriber
variabel.
Perintah keenam menunjukkan bahwa properti Tindakan objek pelanggan peristiwa berisi objek PSEventJob . Bahkan, berisi objek PSEventJob yang sama dengan yang Register-ObjectEvent
dikembalikan perintah.
Perintah ketujuh Format-List
menggunakan cmdlet untuk menampilkan semua properti objek PSEventJob di properti Tindakan dalam daftar. Hasilnya mengungkapkan bahwa objek PSEventJob memiliki properti Modul yang berisi modul skrip dinamis yang mengimplementasikan tindakan.
Perintah yang tersisa menggunakan operator panggilan (&
) untuk memanggil perintah dalam modul dan menampilkan nilai variabel $Random. Anda dapat menggunakan operator panggilan untuk memanggil perintah apa pun dalam modul, termasuk perintah yang tidak diekspor. Dalam hal ini, perintah menunjukkan angka acak yang dihasilkan ketika peristiwa Berlalu terjadi.
Untuk informasi selengkapnya tentang modul, lihat about_Modules.
Parameter
-Force
Menunjukkan bahwa cmdlet ini mendapatkan semua pelanggan peristiwa, termasuk pelanggan untuk peristiwa yang disembunyikan dengan menggunakan parameter SupportEvent dari Register-ObjectEvent
, Register-WmiEvent
, dan Register-EngineEvent
.
Type: | SwitchParameter |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Menentukan nilai properti SourceIdentifier yang hanya mendapatkan pelanggan peristiwa. Secara default, Get-EventSubscriber
mendapatkan semua pelanggan peristiwa dalam sesi. Kartubebas tidak diizinkan. Parameter ini peka huruf besar/kecil.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SubscriptionId
Menentukan pengidentifikasi langganan yang didapat cmdlet ini. Secara default, Get-EventSubscriber
mendapatkan semua pelanggan peristiwa dalam sesi.
Type: | Int32 |
Aliases: | Id |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
Cmdlet ini mengembalikan objek PSEventSubscriber untuk setiap pelanggan peristiwa.
Catatan
New-Event
Cmdlet, yang membuat peristiwa kustom, tidak menghasilkan pelanggan. Oleh karena itu, Get-EventSubscriber
cmdlet tidak akan menemukan objek pelanggan untuk peristiwa ini. Namun, jika Anda menggunakan Register-EngineEvent
cmdlet untuk berlangganan peristiwa kustom (untuk meneruskan peristiwa atau menentukan tindakan), Get-EventSubscriber
akan menemukan pelanggan yang Register-EngineEvent
menghasilkan.
Peristiwa, langganan peristiwa, dan antrean peristiwa hanya ada di sesi saat ini. Jika Anda menutup sesi saat ini, antrean peristiwa akan dibuang dan langganan acara dibatalkan.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk