Get-WinEvent

Mendapatkan peristiwa dari log peristiwa dan file log pelacakan peristiwa di komputer lokal dan jarak jauh.

Sintaks

Get-WinEvent
   [[-LogName] <String[]>]
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-ListLog] <String[]>
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-Force]
   [<CommonParameters>]
Get-WinEvent
   [-ListProvider] <String[]>
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [<CommonParameters>]
Get-WinEvent
   [-ProviderName] <String[]>
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-Path] <String[]>
   [-MaxEvents <Int64>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterHashtable] <Hashtable[]>
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXml] <XmlDocument>
   [-Oldest]
   [<CommonParameters>]

Deskripsi

Cmdlet ini hanya tersedia di platform Windows.

Get-WinEvent Cmdlet mendapatkan peristiwa dari log peristiwa, termasuk log klasik, seperti log Sistem dan Aplikasi. Cmdlet mendapatkan data dari log peristiwa yang dihasilkan oleh teknologi Log Peristiwa Windows yang diperkenalkan di Windows Vista dan peristiwa dalam file log yang dihasilkan oleh Pelacakan Peristiwa untuk Windows (ETW). Secara default, Get-WinEvent mengembalikan informasi peristiwa dalam urutan terbaru ke terlama.

Get-WinEvent mencantumkan log peristiwa dan penyedia log peristiwa. Untuk mengganggu perintah, tekan CTRL+C. Anda bisa mendapatkan peristiwa dari log yang dipilih atau dari log yang dihasilkan oleh penyedia peristiwa yang dipilih. Dan, Anda dapat menggabungkan peristiwa dari beberapa sumber dalam satu perintah. Get-WinEvent memungkinkan Anda memfilter peristiwa menggunakan kueri XPath, kueri XML terstruktur, dan kueri tabel hash.

Jika Anda tidak menjalankan PowerShell sebagai Administrator, Anda mungkin melihat pesan kesalahan yang tidak dapat Anda ambil informasi tentang log.

Contoh

Contoh 1: Mendapatkan semua log dari komputer lokal

Perintah ini mendapatkan semua log peristiwa pada komputer lokal. Log tercantum dalam urutan yang Get-WinEvent mendapatkannya. Log klasik diambil terlebih dahulu, diikuti oleh log Peristiwa Windows baru. Dimungkinkan bagi RecordCount log menjadi null, yang kosong, atau nol.

Get-WinEvent -ListLog *

LogMode   MaximumSizeInBytes RecordCount LogName
-------   ------------------ ----------- -------
Circular            15532032       14500 Application
Circular             1052672         117 Azure Information Protection
Circular             1052672        3015 CxAudioSvcLog
Circular            20971520             ForwardedEvents
Circular            20971520           0 HardwareEvents

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListLog menggunakan kartubebas tanda bintang (*) untuk menampilkan informasi tentang setiap log.

Contoh 2: Dapatkan log Penyiapan klasik

Perintah ini mendapatkan objek EventLogConfiguration yang mewakili log Penyiapan klasik. Objek mencakup informasi tentang log, seperti ukuran file, penyedia, jalur file, dan apakah log diaktifkan.

Get-WinEvent -ListLog Setup | Format-List -Property *

FileSize                       : 69632
IsLogFull                      : False
LastAccessTime                 : 3/13/2019 09:41:46
LastWriteTime                  : 3/13/2019 09:41:46
OldestRecordNumber             : 1
RecordCount                    : 23
LogName                        : Setup
LogType                        : Operational
LogIsolation                   : Application
IsEnabled                      : True
IsClassicLog                   : False
SecurityDescriptor             : O:BAG:SYD: ...
LogFilePath                    : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes             : 1052672
LogMode                        : Circular
OwningProviderName             : Microsoft-Windows-Eventlog
ProviderNames                  : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel                  :
ProviderKeywords               :
ProviderBufferSize             : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency                : 1000
ProviderControlGuid            :

Cmdlet menggunakan parameter ListLog untuk menentukan log Penyiapan.Get-WinEvent Objek dikirimkan alur ke Format-List cmdlet. Format-Listmenggunakan parameter Properti dengan kartubebas tanda bintang (*) untuk menampilkan setiap properti.

Contoh 3: Mengonfigurasi log Keamanan klasik

Perintah ini mendapatkan objek EventLogConfiguration yang mewakili log Keamanan klasik. Objek kemudian digunakan untuk mengonfigurasi pengaturan untuk log, seperti ukuran file maks, jalur file, dan apakah log diaktifkan.

$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
   $log.SaveChanges()
   Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
   $ErrMsg  = 'You do not have permission to configure this log!'
   $ErrMsg += ' Try running this script with administrator privileges. '
   $ErrMsg += $_.Exception.Message
   Write-Error $ErrMsg
}

FileSize                       : 69632
IsLogFull                      : False
LastAccessTime                 : 3/13/2019 09:41:46
LastWriteTime                  : 3/13/2019 09:41:46
OldestRecordNumber             : 1
RecordCount                    : 23
LogName                        : Security
LogType                        : Administrative
LogIsolation                   : Custom
IsEnabled                      : True
IsClassicLog                   : True
SecurityDescriptor             : O:BAG:SYD: ...
LogFilePath                    : %SystemRoot%\System32\Winevt\Logs\Security.evtx
MaximumSizeInBytes             : 1073741824
LogMode                        : Circular
OwningProviderName             :
ProviderNames                  : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel                  :
ProviderKeywords               :
ProviderBufferSize             : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency                : 1000
ProviderControlGuid            :

Cmdlet menggunakan parameter ListLog untuk menentukan log Keamanan.Get-WinEvent Objek disimpan ke variabel. Properti MaximumSizeInBytes diatur ke 1 gigabyte pada objek. Metode SaveChanges dipanggil untuk mendorong perubahan ke sistem di dalam blok coba untuk menangani pelanggaran akses. Get-WinEvent Cmdlet dipanggil lagi pada log Keamanan dan disalurkan ke Format-List cmdlet untuk memverifikasi bahwa properti MaximumSizeInBytes telah disimpan pada komputer.

Contoh 4: Mendapatkan log peristiwa dari server

Perintah ini hanya mendapatkan log peristiwa pada komputer lokal yang berisi peristiwa. Dimungkinkan bagi RecordCount log menjadi null atau nol. Contohnya menggunakan $_ variabel . Untuk informasi selengkapnya, lihat about_Automatic_Variables.

Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }

LogMode   MaximumSizeInBytes RecordCount LogName
-------   ------------------ ----------- -------
Circular            15532032       14546 Application
Circular             1052672         117 Azure Information Protection
Circular             1052672        2990 CxAudioSvcLog
Circular             1052672           9 MSFTVPN Setup
Circular             1052672         282 OAlerts

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListLog menggunakan kartubebas tanda bintang (*) untuk menampilkan informasi tentang setiap log. Parameter ComputerName menentukan untuk mendapatkan log dari komputer lokal, localhost. Objek dikirimkan alur ke Where-Object cmdlet. Where-Object$_.RecordCount menggunakan untuk mengembalikan hanya log yang berisi data. $_ adalah variabel yang mewakili objek saat ini dalam alur. RecordCount adalah properti objek dengan nilai non-null.

Contoh 5: Mendapatkan log peristiwa dari beberapa server

Contoh ini mendapatkan objek yang mewakili log peristiwa Aplikasi di tiga komputer: Server01, Server02, dan Server03. Kata kunci ForEach digunakan karena parameter ComputerName hanya menerima satu nilai. Untuk informasi selengkapnya, lihat about_Foreach.

$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
  Get-WinEvent -ListLog Application -ComputerName $Server |
    Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
      @{name='ComputerName'; expression={$Server}} |
    Format-Table -AutoSize
}

LogMode MaximumSizeInBytes RecordCount LogName     ComputerName
 ------- ------------------ ----------- -------     ------------
Circular           15532032       14577 Application Server01
Circular           15532032        9689 Application Server02
Circular           15532032        5309 Application Server03

Variabel $S menyimpan nama tiga server: Server01, Server02, dan Server03. Pernyataan ForEach menggunakan perulangan untuk memproses setiap server, ($Server in $S). Blok skrip di kurung kurawal ({ }) menjalankan Get-WinEvent perintah. Parameter ListLog menentukan log Aplikasi . Parameter ComputerName menggunakan variabel $Server untuk mendapatkan informasi log dari setiap server.

Objek dikirimkan alur ke Select-Object cmdlet. Select-Objectmendapatkan properti LogMode, MaximumSizeInBytes, RecordCount, LogName, dan menggunakan ekspresi terhitung untuk menampilkan ComputerName menggunakan $Server variabel . Objek dikirimkan alur ke Format-Table cmdlet untuk menampilkan output di konsol PowerShell. Parameter AutoSize memformat output agar pas dengan layar.

Contoh 6: Mendapatkan penyedia log peristiwa dan nama log

Perintah ini mendapatkan penyedia log peristiwa dan log tempat mereka menulis.

Get-WinEvent -ListProvider *

Name     : .NET Runtime
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListProvider menggunakan kartubebas tanda bintang (*) untuk menampilkan informasi tentang setiap penyedia. Dalam output, Nama adalah penyedia dan LogLinks adalah log yang ditulis penyedia.

Contoh 7: Mendapatkan semua penyedia log peristiwa yang menulis ke log tertentu

Perintah ini mendapatkan semua penyedia yang menulis ke log Aplikasi .

(Get-WinEvent -ListLog Application).ProviderNames

.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListLog menggunakan Aplikasi untuk mendapatkan objek untuk log tersebut. ProviderNames adalah properti objek dan menampilkan penyedia yang menulis ke log Aplikasi .

Contoh 8: Mendapatkan nama penyedia log peristiwa yang berisi string tertentu

Perintah ini mendapatkan penyedia log peristiwa dengan nama yang menyertakan string tertentu dalam nama penyedia.

Get-WinEvent -ListProvider *Policy*

Name     : Group Policy Applications
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : Group Policy Client
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : Group Policy Data Sources
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListProvider menggunakan kartubebas tanda bintang (*) untuk menemukan Kebijakan di mana saja dalam nama penyedia.

Contoh 9: Dapatkan Id Peristiwa yang dihasilkan penyedia peristiwa

Perintah ini mencantumkan Id Peristiwa yang dihasilkan penyedia peristiwa Microsoft-Windows-GroupPolicy bersama dengan deskripsi peristiwa.

(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description

Id  Description
  --  -----------
1500  The Group Policy settings for the computer were processed successfully...
1501  The Group Policy settings for the user were processed successfully...
4115  Group Policy Service started.
4116  Started the Group Policy service initialization phase.
4117  Group Policy Session started.

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter ListProvider menentukan penyedia, Microsoft-Windows-GroupPolicy. Ekspresi dibungkus dalam tanda kurung dan menggunakan properti Peristiwa untuk mendapatkan objek. Objek dikirimkan alur ke Format-Table cmdlet. Format-Tablemenampilkan Id dan Deskripsi objek peristiwa.

Contoh 10: Mendapatkan informasi log dari properti objek peristiwa

Contoh ini menunjukkan cara mendapatkan informasi tentang konten log menggunakan properti objek peristiwa. Objek peristiwa disimpan dalam variabel lalu dikelompokkan dan dihitung berdasarkan Id Peristiwa dan Tingkat.

$Event = Get-WinEvent -LogName 'Windows PowerShell'
$Event.Count
$Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
$Event | Group-Object -Property LevelDisplayName -NoElement

195

Count  Name
-----  ----
  147  600
   22  400
   21  601
    3  403
    2  103

Count  Name
-----  ----
    2  Warning
  193  Information

Cmdlet menggunakan parameter LogName untuk menentukan log peristiwa Windows PowerShell.Get-WinEvent Objek peristiwa disimpan dalam $Event variabel. Properti Hitung memperlihatkan $Eventjumlah total peristiwa yang dicatat.

Variabel $Event dikirimkan alur ke Group-Object cmdlet. Group-Objectmenggunakan parameter Properti untuk menentukan properti Id dan menghitung objek menurut nilai Id peristiwa. Parameter NoElement menghapus properti lain dari output objek. Objek yang dikelompokkan dikirim ke alur ke Sort-Object cmdlet. Sort-Objectmenggunakan parameter Properti untuk mengurutkan objek menurut Hitungan. Parameter Turun menampilkan output menurut hitungan, dari tertinggi hingga terendah. Dalam output, kolom Hitung berisi jumlah total setiap peristiwa. Kolom Nama berisi nomor Id peristiwa yang dikelompokkan.

Variabel $Event dikirimkan alur ke Group-Object cmdlet. Group-Objectmenggunakan parameter Properti untuk menentukan properti LevelDisplayName dan menghitung objek menurut LevelDisplayName. Objek dikelompokkan menurut tingkat seperti Peringatan dan Informasi. Parameter NoElement menghapus properti lain dari output. Dalam output, kolom Hitung berisi jumlah total setiap peristiwa. Kolom Nama berisi LevelDisplayName yang dikelompokkan.

Contoh 11: Dapatkan peristiwa kesalahan yang memiliki string tertentu dalam namanya

Contoh ini menggunakan string nama log yang dipisahkan koma. Output dikelompokkan menurut tingkat seperti kesalahan atau peringatan dan nama log.

Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* |
  Group-Object -Property LevelDisplayName, LogName -NoElement |
    Format-Table -AutoSize

Count  Name
-----  ----
    1  Error, PowerShellCore/Operational
   26  Information, Microsoft-Windows-Kernel-WHEA/Operational
  488  Information, Microsoft-Windows-PowerShell/Operational
   77  Information, PowerShellCore/Operational
 9835  Information, Windows PowerShell
   19  Verbose, PowerShellCore/Operational
  444  Warning, Microsoft-Windows-PowerShell/Operational
  512  Warning, PowerShellCore/Operational

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter LogName menggunakan string yang dipisahkan koma dengan kartubebas tanda bintang (*) untuk menentukan nama log. Objek dikirimkan alur ke Group-Object cmdlet. Group-Objectmenggunakan parameter Properti untuk mengelompokkan objek menurut LevelDisplayName dan LogName. Parameter NoElement menghapus properti lain dari output. Objek yang dikelompokkan dikirim ke alur ke Format-Table cmdlet. Format-Tablemenggunakan parameter AutoSize untuk memformat kolom. Kolom Hitung berisi jumlah total setiap peristiwa. Kolom Nama berisi LevelDisplayName dan LogName yang dikelompokkan.

Contoh 12: Mendapatkan peristiwa dari log peristiwa yang diarsipkan

Get-WinEvent bisa mendapatkan informasi peristiwa dari file log yang disimpan. Sampel ini menggunakan log PowerShell yang diarsipkan yang disimpan di komputer lokal.

Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'

ProviderName: PowerShell

TimeCreated              Id LevelDisplayName  Message
-----------              -- ----------------  -------
3/15/2019 13:54:13      403 Information       Engine state is changed from Available to Stopped...
3/15/2019 13:54:13      400 Information       Engine state is changed from None to Available...
3/15/2019 13:54:13      600 Information       Provider "Variable" is Started...
3/15/2019 13:54:13      600 Information       Provider "Function" is Started...
3/15/2019 13:54:13      600 Information       Provider "FileSystem" is Started...

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter Jalur menentukan direktori dan nama file.

Contoh 13: Mendapatkan sejumlah peristiwa tertentu dari log peristiwa yang diarsipkan

Perintah ini mendapatkan sejumlah peristiwa tertentu dari log peristiwa yang diarsipkan. Get-WinEvent memiliki parameter yang bisa mendapatkan jumlah maksimum peristiwa atau peristiwa terlama. Sampel ini menggunakan log PowerShell yang diarsipkan yang disimpan di C:\Test\PowerShellCore Operational.evtx.

Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100

ProviderName: PowerShellCore

TimeCreated                 Id   LevelDisplayName  Message
-----------                 --   ----------------  -------
3/15/2019 09:54:54        4104   Warning           Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13       40962   Information       PowerShell console is ready for user input
3/15/2019 07:56:24        4104   Warning           Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22        40961   Information       PowerShell console is starting up
3/7/2019 10:53:22         8197   Verbose           Runspace state changed to Opening
3/7/2019 10:53:22         8195   Verbose           Opening RunspacePool

Get-WinEvent Cmdlet mendapatkan informasi log dari komputer. Parameter Jalur menentukan direktori dan nama file. Parameter MaxEvents menentukan bahwa 100 rekaman ditampilkan, dari yang terbaru hingga terlama.

Contoh 14: Pelacakan Peristiwa untuk Windows

Pelacakan Peristiwa untuk Windows (ETW) menulis peristiwa ke log saat peristiwa terjadi. Peristiwa disimpan dalam urutan terlama ke yang terbaru. File ETW yang .etldiarsipkan disimpan seperti TraceLog.etl. Peristiwa tercantum dalam urutan penulisan ke log, sehingga parameter Terlama diperlukan.

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
  Sort-Object -Property TimeCreated -Descending |
    Select-Object -First 100

Get-WinEvent Cmdlet mendapatkan informasi log dari file yang diarsipkan. Parameter Jalur menentukan direktori dan nama file. Parameter terlama digunakan untuk menghasilkan peristiwa dalam urutan yang ditulis, terlama hingga terbaru. Objek dikirim ke alur ke Sort-Object cmdlet Sort-Object mengurutkan objek dalam urutan menurun menurut nilai properti TimeCreated . Objek dikirimkan alur ke Select-Object cmdlet yang menampilkan 100 peristiwa terbaru.

Contoh 15: Mendapatkan peristiwa dari log pelacakan peristiwa

Contoh ini menunjukkan cara mendapatkan peristiwa dari file log jejak peristiwa (.etl) dan file log Windows PowerShell yang diarsipkan (.evtx). Anda dapat menggabungkan beberapa jenis file dalam satu perintah. Karena file berisi jenis objek .NET Framework yang sama, EventLogRecord, Anda dapat memfilternya dengan properti yang sama. Perintah memerlukan parameter Terlama karena membaca dari .etl file, tetapi parameter Terlama berlaku untuk setiap file.

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
  Where-Object { $_.Id -eq '403' }

Get-WinEvent Cmdlet mendapatkan informasi log dari file yang diarsipkan. Parameter Jalur menggunakan daftar yang dipisahkan koma untuk menentukan setiap direktori file dan nama file. Parameter terlama digunakan untuk menghasilkan peristiwa dalam urutan yang ditulis, terlama hingga terbaru. Objek dikirimkan alur ke Where-Object cmdlet. Where-Object menggunakan blok skrip untuk menemukan peristiwa dengan Id403. Variabel $_ mewakili objek saat ini dalam alur dan Id adalah properti Id Peristiwa.

Contoh 16: Memfilter hasil log peristiwa

Contoh ini menunjukkan berbagai metode untuk memfilter dan memilih peristiwa dari log peristiwa. Semua perintah ini mendapatkan peristiwa yang terjadi dalam 24 jam terakhir dari log peristiwa Windows PowerShell . Metode filter lebih efisien daripada menggunakan Where-Object cmdlet. Filter diterapkan saat objek diambil. Where-Object mengambil semua objek, lalu menerapkan filter ke semua objek.

# Using the Where-Object cmdlet:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }

# Using the FilterHashtable parameter:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }

# Using the FilterXML parameter:
$xmlQuery = @'
<QueryList>
  <Query Id="0" Path="Windows PowerShell">
    <Select Path="System">*[System[(Level=3) and
        TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select>
  </Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery

# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath

Contoh 17: Gunakan FilterHashtable untuk mendapatkan peristiwa dari log Aplikasi

Contoh ini menggunakan parameter FilterHashtable untuk mendapatkan peristiwa dari log Aplikasi . Tabel hash menggunakan pasangan kunci/nilai . Untuk informasi selengkapnya tentang parameter FilterHashtable , lihat Membuat kueri Get-WinEvent dengan FilterHashtable. Untuk informasi selengkapnya tentang tabel hash, lihat about_Hash_Tables.

$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }

Get-Date Cmdlet menggunakan metode AddDays untuk mendapatkan tanggal yang dua hari sebelum tanggal saat ini. Objek tanggal disimpan dalam $Date variabel .

Get-WinEvent Cmdlet mendapatkan informasi log. Parameter FilterHashtable digunakan untuk memfilter output. Kunci LogName menentukan nilai sebagai log Aplikasi . Kunci StartTime menggunakan nilai yang disimpan dalam $Date variabel. Kunci Id menggunakan nilai Id Peristiwa, 1003.

Contoh 18: Gunakan FilterHashtable untuk mendapatkan kesalahan aplikasi

Contoh ini menggunakan parameter FilterHashtable untuk menemukan kesalahan aplikasi Internet Explorer yang terjadi dalam seminggu terakhir.

$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
  Logname='Application'
  ProviderName='Application Error'
  Data='iexplore.exe'
  StartTime=$StartTime
}

Get-Date Cmdlet menggunakan metode AddDays untuk mendapatkan tanggal yang tujuh hari sebelum tanggal saat ini. Objek tanggal disimpan dalam $StartTime variabel .

Get-WinEvent Cmdlet mendapatkan informasi log. Parameter FilterHashtable digunakan untuk memfilter output. Kunci LogName menentukan nilai sebagai log Aplikasi . Kunci ProviderName menggunakan nilai, Kesalahan Aplikasi, yang merupakan Sumber peristiwa. Kunci Data menggunakan nilai iexplore.exe Kunci StartTime menggunakan nilai yang disimpan dalam $StartTime variabel.

Contoh 19: Gunakan SuppressHashFilter untuk memfilter kesalahan aplikasi

Seperti Contoh 16 di atas, contoh ini menggunakan parameter FilterHashtable untuk mendapatkan peristiwa dari log Aplikasi . Namun, kami menambahkan kunci SuppressHashFilter untuk memfilter peristiwa tingkat Informasi .

$Date = (Get-Date).AddDays(-2)
$filter = @{
  LogName='Application'
  StartTime=$Date
  SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter

Dalam contoh ini, Get-WinEvent mendapatkan semua peristiwa dari log Aplikasi selama dua hari terakhir kecuali yang memiliki Tingkat 4 (Informasi).

Parameter

-ComputerName

Menentukan nama komputer yang cmdlet ini mendapatkan peristiwa dari log peristiwa. Ketik nama NetBIOS, alamat IP, atau nama domain yang sepenuhnya memenuhi syarat (FQDN) komputer. Nilai defaultnya adalah komputer lokal, localhost. Parameter ini hanya menerima satu nama komputer pada satu waktu.

Untuk mendapatkan log peristiwa dari komputer jarak jauh, konfigurasikan port firewall untuk layanan log peristiwa untuk mengizinkan akses jarak jauh.

Cmdlet ini tidak bergantung pada jarak jauh PowerShell. Anda dapat menggunakan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.

Type:String
Aliases:Cn
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Nilai 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, Anda akan dimintai kata sandi. Jika Anda hanya mengetik nama parameter, Anda akan dimintai nama pengguna dan kata sandi.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterHashtable

Menentukan kueri dalam format tabel hash untuk memilih peristiwa dari satu atau beberapa log peristiwa. Kueri berisi tabel hash dengan satu atau beberapa pasangan kunci/nilai .

Kueri tabel hash memiliki aturan berikut:

  • Kunci dan nilai tidak peka huruf besar/kecil.
  • Karakter kartubebas hanya valid dalam nilai yang terkait dengan kunci LogName dan ProviderName .
  • Setiap kunci hanya dapat dicantumkan sekali di setiap tabel hash.
  • Nilai Jalur mengambil jalur ke .etlfile log , .evt, dan .evtx .
  • Kunci LogName, Path, dan ProviderName dapat digunakan dalam kueri yang sama.
  • Kunci UserID dapat mengambil pengidentifikasi keamanan (SID) yang valid atau nama akun domain yang dapat digunakan untuk membuat objek System.Security.Principal.NTAccount yang valid.
  • Nilai Data mengambil data peristiwa dalam bidang yang tidak disebutkan namanya. Misalnya, peristiwa di log peristiwa klasik.
  • <named-data> kunci mewakili bidang data peristiwa bernama.

Ketika Get-WinEvent tidak dapat menginterpretasikan pasangan kunci/nilai , itu menginterpretasikan kunci sebagai nama peka huruf besar/kecil untuk data peristiwa dalam peristiwa tersebut.

Pasangan kunci/nilai yang valid Get-WinEventadalah sebagai berikut:

  • LogName=<String[]>
  • ProviderName=<String[]>
  • Jalur=<String[]>
  • Kata kunci=<Long[]>
  • ID=<Int32[]>
  • Tingkat=<Int32[]>
  • StartTime=<DateTime>
  • EndTime=<DateTime>
  • UserID=<SID>
  • Data=<String[]>
  • <named-data>=<String[]>
  • SuppressHashFilter=<Hashtable>
Type:Hashtable[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXml

Menentukan kueri XML terstruktur yang cmdlet ini memilih peristiwa dari satu atau beberapa log peristiwa.

Untuk menghasilkan kueri XML yang valid, gunakan fitur Buat Tampilan Kustom dan Filter Log Saat Ini di Windows Pemantau Peristiwa. Gunakan item dalam kotak dialog untuk membuat kueri, lalu klik tab XML untuk menampilkan kueri dalam format XML. Anda dapat menyalin XML dari tab XML ke dalam nilai parameter FilterXml . Untuk informasi selengkapnya tentang fitur Pemantau Peristiwa, lihat Bantuan Pemantau Peristiwa.

Gunakan kueri XML untuk membuat kueri kompleks yang berisi beberapa pernyataan XPath. Format XML juga memungkinkan Anda menggunakan elemen Tekan XML yang mengecualikan peristiwa dari kueri. Untuk informasi selengkapnya tentang skema XML untuk kueri log peristiwa, lihat Skema Kueri dan bagian Kueri Peristiwa XML dari Pemilihan Peristiwa.

Anda juga dapat membuat elemen Suppress menggunakan parameter FilterHashtable .

Type:XmlDocument
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXPath

Menentukan kueri XPath yang cmdlet ini memilih peristiwa dari satu atau beberapa log.

Untuk informasi selengkapnya tentang bahasa XPath, lihat Referensi XPath dan bagian Filter Pilihan dari Pemilihan Peristiwa.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Mendapatkan log debug dan analitik, selain log peristiwa lainnya. Parameter Paksa diperlukan untuk mendapatkan debug atau log analitik saat nilai parameter nama menyertakan karakter kartubebas.

Secara default, Get-WinEvent cmdlet mengecualikan log ini kecuali Anda menentukan nama lengkap debug atau log analitik.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ListLog

Menentukan log peristiwa. Masukkan nama log peristiwa dalam daftar yang dipisahkan koma. Kartubebas diizinkan. Untuk mendapatkan semua log, gunakan kartubebas tanda bintang (*).

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-ListProvider

Menentukan penyedia log peristiwa yang didapat cmdlet ini. Penyedia log peristiwa adalah program atau layanan yang menulis peristiwa ke log peristiwa.

Masukkan nama penyedia dalam daftar yang dipisahkan koma. Kartubebas diizinkan. Untuk mendapatkan penyedia semua log peristiwa di komputer, gunakan kartubebas tanda bintang (*).

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-LogName

Menentukan log peristiwa tempat cmdlet ini mendapatkan peristiwa. Masukkan nama log peristiwa dalam daftar yang dipisahkan koma. Kartubebas diizinkan. Anda juga dapat menyalurkan nama log ke Get-WinEvent cmdlet.

Catatan

PowerShell tidak membatasi jumlah log yang dapat Anda minta. Namun, Get-WinEvent cmdlet meminta WINDOWS API yang memiliki batas 256. Ini dapat menyulitkan untuk memfilter semua log Anda pada satu waktu. Anda dapat mengatasinya dengan menggunakan perulangan foreach untuk melakukan iterasi melalui setiap log seperti ini: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.Logname }

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-MaxEvents

Menentukan jumlah maksimum peristiwa yang dikembalikan. Masukkan bilangan bulat seperti 100. Defaultnya adalah mengembalikan semua peristiwa dalam log atau file.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Oldest

Tunjukkan bahwa cmdlet ini mendapatkan peristiwa dalam urutan terlama-pertama. Secara default, peristiwa dikembalikan dalam urutan pertama terbaru.

Parameter ini diperlukan untuk mendapatkan peristiwa dari .etl.evt dan file dan dari log debug dan analitik. Dalam file-file ini, peristiwa dicatat dalam urutan pertama terlama, dan peristiwa hanya dapat dikembalikan dalam urutan terlama-pertama.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Menentukan jalur ke file log peristiwa tempat cmdlet ini mendapatkan peristiwa. Masukkan jalur ke file log dalam daftar yang dipisahkan koma, atau gunakan karakter kartubebas untuk membuat pola jalur file.

Get-WinEvent mendukung file dengan .evtekstensi nama file , .evtx, dan .etl . Anda dapat menyertakan peristiwa dari file dan jenis file yang berbeda dalam perintah yang sama.

Type:String[]
Aliases:PSPath
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-ProviderName

Menentukan, sebagai array string, penyedia log peristiwa tempat cmdlet ini mendapatkan peristiwa. Masukkan nama penyedia dalam daftar yang dipisahkan koma, atau gunakan karakter kartubebas untuk membuat pola nama penyedia.

Penyedia log peristiwa adalah program atau layanan yang menulis peristiwa ke log peristiwa. Ini bukan penyedia PowerShell.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

Input

String

Anda dapat menyalurkan LogName (string) ke cmdlet ini.

XmlDocument

Anda dapat menyalurkan kueri FilterXML ke cmdlet ini.

Hashtable

Anda dapat menyalurkan kueri FilterHashtable ke cmdlet ini.

Output

EventLogConfiguration

Dengan parameter ListLog, cmdlet ini mengembalikan objek EventLogConfiguration.

EventLogRecord

Secara default, cmdlet ini mengembalikan objek EventLogRecord .

ProviderMetadata

Dengan parameter ListProvider, cmdlet ini mengembalikan objek ProviderMetadata.

Catatan

Get-WinEvent dirancang untuk mengganti Get-EventLog cmdlet pada komputer yang menjalankan Windows Vista dan versi Windows yang lebih baru. Get-EventLog mendapatkan peristiwa hanya di log peristiwa klasik. Get-EventLog dipertahankan untuk kompatibilitas mundur.

Get-WinEvent cmdlet dan Get-EventLog tidak didukung di Windows Pre-installation Environment (Windows PE).