New-Event
Membuat peristiwa baru.
Sintaks
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Deskripsi
Cmdlet New-Event
membuat peristiwa kustom baru.
Anda dapat menggunakan peristiwa kustom untuk memberi tahu pengguna tentang perubahan status dalam program Anda dan perubahan apa pun yang dapat dideteksi program Anda, termasuk kondisi perangkat keras atau sistem, status aplikasi, status disk, status jaringan, atau penyelesaian pekerjaan latar belakang.
Peristiwa kustom secara otomatis ditambahkan ke antrean peristiwa di sesi Anda setiap kali dinaikkan; Anda tidak perlu berlangganan mereka. Namun, jika Anda ingin meneruskan peristiwa ke sesi lokal atau menentukan tindakan untuk merespons peristiwa, gunakan cmdlet Register-EngineEvent
untuk berlangganan peristiwa kustom.
Saat Anda berlangganan peristiwa kustom, pelanggan peristiwa ditambahkan ke sesi Anda. Jika Anda membatalkan langganan peristiwa dengan menggunakan cmdlet Unregister-Event
, pelanggan peristiwa dan peristiwa kustom akan dihapus dari sesi. Jika Anda tidak berlangganan peristiwa kustom, untuk menghapus peristiwa, Anda harus mengubah kondisi program atau menutup sesi PowerShell.
Contoh
Contoh 1: Membuat peristiwa baru dalam antrean peristiwa
PS C:\> New-Event -SourceIdentifier Timer -Sender Windows.Timer -MessageData "Test"
Perintah ini membuat peristiwa baru dalam antrean peristiwa PowerShell. Ini menggunakan objek Windows.Timer untuk mengirim peristiwa.
Contoh 2: Menaikkan peristiwa sebagai respons terhadap peristiwa lain
PS C:\> function Enable-ProcessCreationEvent
{
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
$Identifier = "WMI.ProcessCreated"
Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
{
[void] (New-Event -SourceId "PowerShell.ProcessCreated" -Sender $args[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance)
}
}
Fungsi sampel ini menggunakan cmdlet New-Event
untuk menaikkan peristiwa sebagai respons terhadap peristiwa lain. Perintah menggunakan cmdlet Register-ObjectEvent
untuk berlangganan peristiwa Windows Management Instrumentation (WMI) yang dinaikkan saat proses baru dibuat. Perintah menggunakan parameter Tindakan cmdlet untuk memanggil cmdlet New-Event
, yang membuat peristiwa baru.
Karena peristiwa yang New-Event
naikkan secara otomatis ditambahkan ke antrean peristiwa PowerShell, Anda tidak perlu mendaftar untuk peristiwa tersebut.
Parameter
-EventArguments
Menentukan objek yang berisi opsi untuk peristiwa tersebut.
Jenis: | PSObject[] |
Position: | 2 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MessageData
Menentukan data tambahan yang terkait dengan peristiwa. Nilai parameter ini muncul di properti MessageData objek peristiwa.
Jenis: | PSObject |
Position: | 3 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Sender
Menentukan objek yang menaikkan peristiwa. Defaultnya adalah mesin PowerShell.
Jenis: | PSObject |
Position: | 1 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SourceIdentifier
Menentukan nama untuk peristiwa baru. Parameter ini diperlukan, dan harus unik dalam sesi.
Nilai parameter ini muncul di properti SourceIdentifier peristiwa.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
Catatan
Tidak ada sumber peristiwa yang tersedia di platform Linux atau macOS.
Peristiwa kustom baru, 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.