Bagikan melalui


New-WinEvent

Membuat peristiwa Windows baru untuk penyedia peristiwa yang ditentukan.

Sintaks

New-WinEvent
   [-ProviderName] <String>
   [-Id] <Int32>
   [-Version <Byte>]
   [[-Payload] <Object[]>]
   [<CommonParameters>]

Deskripsi

New-WinEvent Cmdlet membuat peristiwa Pelacakan Peristiwa untuk Windows (ETW) untuk penyedia peristiwa. Anda dapat menggunakan cmdlet ini untuk menambahkan peristiwa ke saluran ETW dari PowerShell.

Contoh

Contoh 1 - Membuat peristiwa baru

New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")

Perintah ini menggunakan New-WinEvent cmdlet untuk membuat peristiwa 45090 untuk penyedia Microsoft-Windows-PowerShell.

Contoh 2 - Dapatkan templat untuk peristiwa

Dalam contoh ini, Get-WinEvent digunakan untuk mendapatkan templat untuk id peristiwa 8007 dari penyedia peristiwa Kebijakan Grup. Perhatikan bahwa peristiwa memiliki dua format.

Di versi 0, bidang IsMachine adalah nilai boolean. Di versi 1, bidang IsMachine adalah nilai bilangan bulat yang tidak ditandatangani.

(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Where-Object Id -eq 8007

Id          : 8007
Version     : 0
LogLink     : System.Diagnostics.Eventing.Reader.EventLogLink
Level       : System.Diagnostics.Eventing.Reader.EventLevel
Opcode      : System.Diagnostics.Eventing.Reader.EventOpcode
Task        : System.Diagnostics.Eventing.Reader.EventTask
Keywords    : {}
Template    : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
                <data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
                <data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
                <data name="IsMachine" inType="win:Boolean" outType="xs:boolean"/>
                <data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
              </template>

Description : Completed periodic policy processing for user %3 in %1 seconds.

Id          : 8007
Version     : 1
LogLink     : System.Diagnostics.Eventing.Reader.EventLogLink
Level       : System.Diagnostics.Eventing.Reader.EventLevel
Opcode      : System.Diagnostics.Eventing.Reader.EventOpcode
Task        : System.Diagnostics.Eventing.Reader.EventTask
Keywords    : {}
Template    : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
                <data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
                <data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
                <data name="IsMachine" inType="win:UInt32" outType="xs:unsignedInt"/>
                <data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
              </template>

Description : Completed periodic policy processing for user %3 in %1 seconds.

Properti Deskripsi berisi pesan yang ditulis ke log peristiwa. Nilai %3 dan %1 adalah tempat penampung untuk nilai yang diteruskan ke templat. String %3 diganti dengan nilai yang diteruskan ke bidang PrincipalSamName . String %1 diganti dengan nilai yang diteruskan ke bidang PolicyElaspedTimeInSeconds .

Contoh 3 - Membuat peristiwa baru menggunakan templat versi

Contoh ini menunjukkan cara membuat peristiwa menggunakan versi templat tertentu.

$Payload = @(300, [uint32]'0x8001011f', $env:USERNAME, 0, 1)
New-WinEvent -ProviderName Microsoft-Windows-GroupPolicy -Id 8007 -Version 1 -Payload $Payload
Get-winEvent -ProviderName Microsoft-Windows-GroupPolicy -MaxEvents 1

ProviderName: Microsoft-Windows-GroupPolicy

TimeCreated            Id LevelDisplayName Message
-----------            -- ---------------- -------
5/4/2022 8:40:24 AM  8007 Information      Completed periodic policy processing for user User1 in 300 seconds

Jika nilai dalam payload tidak cocok dengan jenis dalam templat, peristiwa dicatat tetapi payload berisi kesalahan.

Parameter

-Id

Menentukan Id peristiwa yang terdaftar di penyedia peristiwa.

Jenis:Int32
Position:2
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-Payload

Payload adalah array nilai yang diteruskan sebagai argumen posisi ke templat peristiwa. Nilai disisipkan ke dalam templat untuk membuat pesan untuk peristiwa tersebut. Peristiwa dapat memiliki beberapa versi templat yang menggunakan format yang berbeda.

Jika nilai dalam payload tidak cocok dengan jenis dalam templat, peristiwa dicatat tetapi payload berisi kesalahan.

Jenis:Object[]
Position:3
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ProviderName

Menentukan penyedia peristiwa yang menulis peristiwa ke log peristiwa, seperti "Microsoft-Windows-PowerShell". Penyedia peristiwa ETW adalah entitas logis yang menulis peristiwa ke sesi ETW.

Jenis:String
Position:1
Nilai default:None
Diperlukan:True
Terima input alur:False
Terima karakter wildcard:False

-Version

Menentukan nomor versi peristiwa. PowerShell mengonversi angka ke jenis Byte yang diperlukan. Nilai menentukan versi peristiwa ketika versi yang berbeda dari peristiwa yang sama ditentukan.

Jenis:Byte
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 mengembalikan output.

Catatan

Setelah penyedia menulis peristiwa ke eventlog, Anda dapat menggunakan Get-WinEvent cmdlet untuk mendapatkan peristiwa dari log peristiwa.