New-Event

Membuat peristiwa baru.

Sintaks

New-Event
   [-SourceIdentifier] <String>
   [[-Sender] <PSObject>]
   [[-EventArguments] <PSObject[]>]
   [[-MessageData] <PSObject>]
   [<CommonParameters>]

Deskripsi

New-Event Cmdlet 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 Register-EngineEvent cmdlet untuk berlangganan peristiwa kustom.

Saat Anda berlangganan peristiwa kustom, pelanggan peristiwa ditambahkan ke sesi Anda. Jika Anda membatalkan langganan peristiwa dengan menggunakan Unregister-Event cmdlet, 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 New-Event cmdlet untuk menaikkan peristiwa sebagai respons terhadap peristiwa lain. Perintah menggunakan Register-ObjectEvent cmdlet untuk berlangganan peristiwa Windows Management Instrumentation (WMI) yang dinaikkan saat proses baru dibuat. Perintah menggunakan parameter Tindakan cmdlet untuk memanggil New-Event cmdlet, yang membuat peristiwa baru.

Karena peristiwa yang New-Event dinaikkan secara otomatis ditambahkan ke antrean peristiwa PowerShell, Anda tidak perlu mendaftar untuk peristiwa tersebut.

Parameter

-EventArguments

Menentukan objek yang berisi opsi untuk peristiwa tersebut.

Type:PSObject[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MessageData

Menentukan data tambahan yang terkait dengan peristiwa. Nilai parameter ini muncul di properti MessageData objek peristiwa.

Type:PSObject
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Sender

Menentukan objek yang menaikkan peristiwa. Defaultnya adalah mesin PowerShell.

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Menentukan nama untuk peristiwa baru. Parameter ini diperlukan, dan harus unik dalam sesi.

Nilai parameter ini muncul di properti SourceIdentifier peristiwa.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.