Bagikan melalui


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 $Eventvariabel , $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.