Register-WmiEvent
Berlangganan ke peristiwa Instrumentasi Manajemen Windows (WMI).
Sintaks
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Class] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Query] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Deskripsi
Register-WmiEvent
Cmdlet berlangganan peristiwa Windows Management Instrumentation (WMI) di komputer lokal atau di komputer jarak jauh.
Ketika peristiwa WMI berlangganan dinaikkan, peristiwa ditambahkan ke antrean peristiwa di sesi lokal Anda bahkan jika peristiwa terjadi di komputer jarak jauh. Untuk mendapatkan peristiwa dalam antrean peristiwa, gunakan Get-Event
cmdlet .
Anda dapat menggunakan parameter Register-WmiEvent
untuk berlangganan peristiwa di komputer jarak jauh dan menentukan nilai properti peristiwa yang dapat membantu Anda mengidentifikasi peristiwa dalam antrean. Anda juga dapat menggunakan parameter Tindakan untuk menentukan tindakan yang harus diambil saat peristiwa berlangganan dinaikkan.
Saat Anda berlangganan acara, pelanggan peristiwa ditambahkan ke sesi Anda. Untuk mendapatkan pelanggan peristiwa dalam sesi, gunakan Get-EventSubscriber
cmdlet . Untuk membatalkan langganan, gunakan Unregister-Event
cmdlet, yang menghapus pelanggan peristiwa dari sesi.
Cmdlet Common Information Model (CIM) baru, memperkenalkan Windows PowerShell 3.0, melakukan tugas yang sama dengan cmdlet WMI. Cmdlet CIM mematuhi standar WS-Management (WSMan) dan dengan standar CIM, yang memungkinkan cmdlet menggunakan teknik yang sama untuk mengelola komputer yang menjalankan sistem operasi Windows dan yang menjalankan sistem operasi lainnya. Alih-alih menggunakan Register-WmiEvent
, pertimbangkan untuk menggunakan cmdlet Register-CimIndicationEvent .
Contoh
Contoh 1: Berlangganan peristiwa yang dihasilkan oleh kelas
Perintah ini berlangganan peristiwa yang dihasilkan oleh kelas Win32_ProcessStartTrace . Kelas ini menaikkan peristiwa setiap kali proses dimulai.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Contoh 2: Berlangganan peristiwa pembuatan untuk proses
Perintah ini menggunakan kueri untuk berlangganan peristiwa pembuatan instans Win32_process.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Contoh 3: Menggunakan tindakan untuk merespons peristiwa
Contoh ini menunjukkan cara menggunakan tindakan untuk merespons peristiwa. Dalam hal ini, ketika proses dimulai, perintah apa pun Start-Process
dalam sesi saat ini ditulis ke file XML.
$action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
Saat Anda menggunakan parameter Tindakan , Register-WmiEvent
mengembalikan pekerjaan latar belakang yang mewakili tindakan peristiwa. Anda dapat menggunakan cmdlet Pekerjaan , seperti Get-Job
dan Receive-Job
, untuk mengelola pekerjaan peristiwa.
Untuk informasi selengkapnya, lihat about_Jobs.
Contoh 4: Mendaftar untuk peristiwa di komputer jarak jauh
Contoh ini mendaftar untuk peristiwa di komputer jarak jauh Server01.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
WMI mengembalikan peristiwa ke komputer lokal dan menyimpannya dalam antrean peristiwa dalam sesi saat ini. Untuk mengambil peristiwa, jalankan perintah lokal Get-Event
.
Parameter
-Action
Menentukan perintah yang menangani peristiwa. Perintah dalam parameter Tindakan berjalan saat peristiwa dinaikkan alih-alih mengirim peristiwa ke antrean peristiwa. Sertakan perintah dalam kurung kurawal ({}
) untuk membuat blok skrip.
Nilai Tindakan dapat mencakup $Event
variabel , $EventSubscriber
, $Sender
, $EventArgs
, dan $Args
otomatis, yang menyediakan informasi tentang peristiwa ke blok Skrip tindakan. Untuk informasi selengkapnya, lihat about_Automatic_Variables.
Saat Anda menentukan tindakan, Register-WmiEvent
mengembalikan objek pekerjaan peristiwa yang mewakili tindakan tersebut. Anda dapat menggunakan cmdlet yang berisi kata benda Pekerjaan ( cmdlet Pekerjaan ) untuk mengelola pekerjaan peristiwa.
Jenis: | ScriptBlock |
Position: | 101 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Class
Menentukan peristiwa yang Anda berlangganan. Masukkan kelas WMI yang menghasilkan peristiwa. Parameter Kelas atau Kueri diperlukan di setiap perintah.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ComputerName
Menentukan nama komputer tempat perintah dijalankan. Defaultnya adalah komputer lokal.
Ketik nama NetBIOS, alamat IP, atau nama domain komputer yang sepenuhnya memenuhi syarat. Untuk menentukan komputer lokal, ketik nama komputer, titik (.
), atau localhost.
Parameter ini tidak bergantung pada jarak jauh Windows PowerShell. Anda dapat menggunakan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.
Jenis: | String |
Alias: | Cn |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Credential
Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Defaultnya adalah pengguna saat ini.
Ketik nama pengguna, seperti User01 atau Domain01\User01, atau masukkan objek PSCredential , seperti yang dihasilkan oleh Get-Credential
cmdlet. Jika Anda mengetik nama pengguna, cmdlet ini akan meminta kata sandi kepada Anda.
Jenis: | PSCredential |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Forward
Menunjukkan bahwa cmdlet ini mengirim peristiwa untuk langganan ini ke sesi di komputer lokal. Gunakan parameter ini saat Anda mendaftar untuk peristiwa di komputer jarak jauh atau dalam sesi jarak jauh.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MaxTriggerCount
Menentukan jumlah pemicu maksimum.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MessageData
Menentukan data tambahan apa pun yang akan dikaitkan dengan langganan peristiwa ini. Nilai parameter ini muncul di properti MessageData dari semua peristiwa yang terkait dengan langganan ini.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Namespace
Menentukan namespace kelas WMI.
Jenis: | String |
Alias: | NS |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Query
Menentukan kueri dalam WMI Query Language (WQL) yang mengidentifikasi kelas peristiwa WMI, seperti: select * from __InstanceDeletionEvent
.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SourceIdentifier
Menentukan nama yang Anda pilih untuk langganan. Nama yang Anda pilih harus unik dalam sesi saat ini. Nilai defaultnya adalah GUID yang ditetapkan Windows PowerShell.
Nilai parameter ini muncul dalam nilai properti SourceIdentifier objek pelanggan dan semua objek peristiwa yang terkait dengan langganan ini.
Jenis: | String |
Position: | 100 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SupportEvent
Menunjukkan bahwa cmdlet ini menyembunyikan langganan peristiwa. Gunakan parameter ini ketika langganan saat ini adalah bagian dari mekanisme pendaftaran peristiwa yang lebih kompleks dan tidak boleh ditemukan secara independen.
Untuk melihat atau membatalkan langganan yang dibuat dengan menggunakan parameter SupportEvent, tentukan parameter Get-EventSubscriber
Paksa cmdlet dan Unregister-Event
.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Timeout
Menentukan berapa lama Windows PowerShell menunggu perintah ini selesai.
Nilai default, 0 (nol), berarti bahwa tidak ada waktu habis, dan menyebabkan Windows PowerShell menunggu tanpa batas waktu.
Jenis: | Int64 |
Alias: | TimeoutMSec |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
None
Cmdlet ini tidak menghasilkan output apa pun.
Catatan
Untuk menggunakan cmdlet ini di Windows Vista atau versi sistem operasi Windows yang lebih baru, mulai Windows PowerShell dengan menggunakan opsi Jalankan sebagai administrator.
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.