Bagikan melalui


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

PSEventArgs

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.