Get-EventLog

Mendapatkan peristiwa dalam log peristiwa, atau daftar log peristiwa, pada komputer lokal atau komputer jarak jauh.

Sintaks

Get-EventLog
   [-LogName] <String>
   [-ComputerName <String[]>]
   [-Newest <Int32>]
   [-After <DateTime>]
   [-Before <DateTime>]
   [-UserName <String[]>]
   [[-InstanceId] <Int64[]>]
   [-Index <Int32[]>]
   [-EntryType <String[]>]
   [-Source <String[]>]
   [-Message <String>]
   [-AsBaseObject]
   [<CommonParameters>]
Get-EventLog
   [-ComputerName <String[]>]
   [-List]
   [-AsString]
   [<CommonParameters>]

Deskripsi

Get-EventLog Cmdlet mendapatkan peristiwa dan log peristiwa dari komputer lokal dan jarak jauh. Secara default, Get-EventLog mendapatkan log dari komputer lokal. Untuk mendapatkan log dari komputer jarak jauh, gunakan parameter ComputerName .

Anda dapat menggunakan Get-EventLog parameter dan nilai properti untuk mencari peristiwa. Cmdlet mendapatkan peristiwa yang cocok dengan nilai properti yang ditentukan.

Cmdlet PowerShell yang berisi EventLog pekerjaan kata benda hanya pada log peristiwa klasik Windows seperti Aplikasi, Sistem, atau Keamanan. Untuk mendapatkan log yang menggunakan teknologi Log Peristiwa Windows di Windows Vista dan versi Windows yang lebih baru, gunakan Get-WinEvent.

Catatan

Get-EventLog menggunakan API Win32 yang tidak digunakan lagi. Hasilnya mungkin tidak akurat. Get-WinEvent Gunakan cmdlet sebagai gantinya.

Contoh

Contoh 1: Mendapatkan log peristiwa di komputer lokal

Contoh ini menampilkan daftar log peristiwa yang tersedia di komputer lokal. Nama di kolom Log digunakan dengan parameter LogName untuk menentukan log mana yang dicari untuk peristiwa.

Get-EventLog -List

Max(K)   Retain   OverflowAction      Entries  Log
------   ------   --------------      -------  ---
15,168        0   OverwriteAsNeeded   20,792   Application
15,168        0   OverwriteAsNeeded   12,559   System
15,360        0   OverwriteAsNeeded   11,173   Windows PowerShell

Get-EventLog Cmdlet menggunakan parameter Daftar untuk menampilkan log yang tersedia.

Contoh 2: Dapatkan entri terbaru dari log peristiwa di komputer lokal

Contoh ini mendapatkan entri terbaru dari log peristiwa Sistem.

Get-EventLog -LogName System -Newest 5

Index   Time          EntryType    Source              InstanceID   Message
-----   ----          ---------    ------              ----------   -------
13820   Jan 17 19:16  Error        DCOM                     10016   The description for Event...
13819   Jan 17 19:08  Error        DCOM                     10016   The description for Event...
13818   Jan 17 19:06  Information  Service Control...  1073748864   The start type of the Back...
13817   Jan 17 19:05  Error        DCOM                     10016   The description for Event...
13815   Jan 17 19:03  Information  Microsoft-Windows...        35   The time service is now sync...

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log peristiwa Sistem. Parameter Terbaru mengembalikan lima peristiwa terbaru.

Contoh 3: Temukan semua sumber untuk sejumlah entri tertentu dalam log peristiwa

Contoh ini menunjukkan cara menemukan semua sumber yang disertakan dalam 1000 entri terbaru dalam log peristiwa Sistem.

$Events = Get-EventLog -LogName System -Newest 1000
$Events | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Descending

Count   Name
-----   ----
  110   DCOM
   65   Service Control Manager
   51   Microsoft-Windows-Kern...
   14   EventLog
   14   BTHUSB
   13   Win32k

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter Terbaru memilih 1000 peristiwa terbaru. Objek peristiwa disimpan dalam $Events variabel. Objek $Events dikirimkan alur ke Group-Object cmdlet. Group-Objectmenggunakan parameter Properti untuk mengelompokkan objek menurut sumber dan menghitung jumlah objek untuk setiap sumber. Parameter NoElement menghapus anggota grup dari output. Sort-Object Cmdlet menggunakan parameter Properti untuk mengurutkan menurut jumlah setiap nama sumber. Parameter Turun mengurutkan daftar secara berurutan berdasarkan hitungan dari tertinggi ke terendah.

Contoh 4: Mendapatkan peristiwa kesalahan dari log peristiwa tertentu

Contoh ini mendapatkan peristiwa kesalahan dari log peristiwa Sistem.

Get-EventLog -LogName System -EntryType Error

Index Time          EntryType   Source  InstanceID Message
----- ----          ---------   ------  ---------- -------
13296 Jan 16 13:53  Error       DCOM    10016 The description for Event ID '10016' in Source...
13291 Jan 16 13:51  Error       DCOM    10016 The description for Event ID '10016' in Source...
13245 Jan 16 11:45  Error       DCOM    10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error       DCOM    10016 The description for Event ID '10016' in Source...

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter EntryType memfilter peristiwa untuk hanya menampilkan peristiwa Kesalahan.

Contoh 5: Mendapatkan peristiwa dari log peristiwa dengan nilai InstanceId dan Source

Contoh ini mendapatkan peristiwa dari log Sistem untuk InstanceId dan Sumber tertentu.

Get-EventLog -LogName System -InstanceId 10016 -Source DCOM

Index Time          EntryType  Source  InstanceID  Message
----- ----          ---------  ------  ----------  -------
13245 Jan 16 11:45  Error      DCOM         10016  The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error      DCOM         10016  The description for Event ID '10016' in Source...
13219 Jan 16 10:00  Error      DCOM         10016  The description for Event ID '10016' in Source...

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter InstanceID memilih peristiwa dengan ID Instans yang ditentukan. Parameter Sumber menentukan properti peristiwa.

Contoh 6: Mendapatkan peristiwa dari beberapa komputer

Perintah ini mendapatkan peristiwa dari log peristiwa Sistem di tiga komputer: Server01, Server02, dan Server03.

Get-EventLog -LogName System -ComputerName Server01, Server02, Server03

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter ComputerName menggunakan string yang dipisahkan koma untuk mencantumkan komputer tempat Anda ingin mendapatkan log peristiwa.

Contoh 7: Mendapatkan semua peristiwa yang menyertakan kata tertentu dalam pesan

Perintah ini mendapatkan semua peristiwa dalam log peristiwa Sistem yang berisi kata tertentu dalam pesan peristiwa. Ada kemungkinan bahwa nilai parameter Pesan yang Anda tentukan disertakan dalam konten pesan tetapi tidak ditampilkan di konsol PowerShell.

Get-EventLog -LogName System -Message *description*

Index Time          EntryType   Source       InstanceID   Message
----- ----          ---------   ------       ----------   -------
13821 Jan 17 19:17  Error       DCOM              10016   The description for Event ID '10016'...
13820 Jan 17 19:16  Error       DCOM              10016   The description for Event ID '10016'...
13819 Jan 17 19:08  Error       DCOM              10016   The description for Event ID '10016'...

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log peristiwa Sistem. Parameter Pesan menentukan kata yang akan dicari di bidang pesan setiap peristiwa.

Contoh 8: Menampilkan nilai properti peristiwa

Contoh ini menunjukkan cara menampilkan semua properti dan nilai peristiwa.

$A = Get-EventLog -LogName System -Newest 1
$A | Select-Object -Property *

EventID            : 10016
MachineName        : localhost
Data               : {}
Index              : 13821
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : The description for Event ID '10016' in Source 'DCOM'...
Source             : DCOM
ReplacementStrings : {Local,...}
InstanceId         : 10016
TimeGenerated      : 1/17/2019 19:17:23
TimeWritten        : 1/17/2019 19:17:23
UserName           : username
Site               :
Container          :

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log peristiwa Sistem. Parameter Terbaru memilih objek peristiwa terbaru. Objek disimpan dalam $A variabel . Objek dalam $A variabel dikirimkan alur ke Select-Object cmdlet. Select-Objectmenggunakan parameter Properti dengan tanda bintang (*) untuk memilih semua properti objek.

Contoh 9: Mendapatkan peristiwa dari log peristiwa menggunakan SUMBER dan ID peristiwa

Contoh ini mendapatkan peristiwa untuk Sumber dan ID Peristiwa tertentu.

Get-EventLog -LogName Application -Source Outlook | Where-Object {$_.EventID -eq 63} |
              Select-Object -Property Source, EventID, InstanceId, Message

Source   EventID   InstanceId   Message
------   -------   ----------   -------
Outlook       63   1073741887   The Exchange web service request succeeded.
Outlook       63   1073741887   Outlook detected a change notification.
Outlook       63   1073741887   The Exchange web service request succeeded.

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log peristiwa Aplikasi. Parameter Sumber menentukan nama aplikasi, Outlook. Objek dikirimkan alur ke Where-Object cmdlet. Untuk setiap objek dalam alur, Where-Object cmdlet menggunakan variabel $_.EventID untuk membandingkan properti ID Peristiwa dengan nilai yang ditentukan. Objek dikirimkan alur ke Select-Object cmdlet. Select-Objectmenggunakan parameter Properti untuk memilih properti yang akan ditampilkan di konsol PowerShell.

Contoh 10: Mendapatkan peristiwa dan grup menurut properti

Get-EventLog -LogName System -UserName NT* | Group-Object -Property UserName -NoElement |
              Select-Object -Property Count, Name

Count  Name
-----  ----
6031   NT AUTHORITY\SYSTEM
  42   NT AUTHORITY\LOCAL SERVICE
   4   NT AUTHORITY\NETWORK SERVICE

Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter UserName menyertakan kartubebas tanda bintang (*) untuk menentukan sebagian nama pengguna. Objek peristiwa dikirimkan alur ke Group-Object cmdlet. Group-Objectmenggunakan parameter Properti untuk menentukan bahwa properti UserName digunakan untuk mengelompokkan objek dan menghitung jumlah objek untuk setiap nama pengguna. Parameter NoElement menghapus anggota grup dari output. Objek dikirimkan alur ke Select-Object cmdlet. Select-Objectmenggunakan parameter Properti untuk memilih properti yang akan ditampilkan di konsol PowerShell.

Contoh 11: Dapatkan peristiwa yang terjadi selama rentang tanggal dan waktu tertentu

Contoh ini mendapatkan peristiwa Kesalahan dari log peristiwa Sistem untuk rentang tanggal dan waktu tertentu. Parameter Sebelum dan Sesudah mengatur rentang tanggal dan waktu tetapi dikecualikan dari output.

$Begin = Get-Date -Date '1/17/2019 08:00:00'
$End = Get-Date -Date '1/17/2019 17:00:00'
Get-EventLog -LogName System -EntryType Error -After $Begin -Before $End

Index Time          EntryType   Source   InstanceID  Message
----- ----          ---------   ------   ----------  -------
13821 Jan 17 13:40  Error       DCOM          10016  The description for Event ID...
13820 Jan 17 13:11  Error       DCOM          10016  The description for Event ID...
...
12372 Jan 17 10:08  Error       DCOM          10016  The description for Event ID...
12371 Jan 17 09:04  Error       DCOM          10016  The description for Event ID...

Get-Date Cmdlet menggunakan parameter Tanggal untuk menentukan tanggal dan waktu. Objek DateTime disimpan dalam $Begin variabel dan $End . Get-EventLog Cmdlet menggunakan parameter LogName untuk menentukan log Sistem. Parameter EntryType menentukan jenis peristiwa Kesalahan. Rentang tanggal dan waktu diatur oleh parameter $Begin Dan variabel After serta parameter dan $End variabel Before.

Parameter

-After

Mendapatkan peristiwa yang terjadi setelah tanggal dan waktu tertentu. Tanggal dan waktu parameter Setelah dikecualikan dari output. Masukkan objek DateTime , seperti nilai yang dikembalikan oleh Get-Date cmdlet.

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

-AsBaseObject

Menunjukkan bahwa cmdlet ini mengembalikan objek System.Diagnostics.EventLogEntry standar untuk setiap peristiwa. Tanpa parameter ini, Get-EventLog mengembalikan objek PSObject yang diperluas dengan properti EventLogName, Sumber, dan InstanceId tambahan.

Untuk melihat efek parameter ini, pipa peristiwa ke Get-Member cmdlet dan periksa nilai TypeName dalam hasilnya.

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

-AsString

Menunjukkan bahwa cmdlet ini mengembalikan output sebagai string, bukan objek.

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

-Before

Mendapatkan peristiwa yang terjadi sebelum tanggal dan waktu tertentu. Tanggal dan waktu parameter Sebelum dikecualikan dari output. Masukkan objek DateTime , seperti nilai yang dikembalikan oleh Get-Date cmdlet.

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

-ComputerName

Parameter ini menentukan nama NetBIOS komputer jarak jauh, alamat Protokol Internet (IP), atau nama domain yang sepenuhnya memenuhi syarat (FQDN).

Jika parameter ComputerName tidak ditentukan, Get-EventLog default ke komputer lokal. Parameter juga menerima titik (.) untuk menentukan komputer lokal.

Parameter ComputerName tidak bergantung pada jarak jauh Windows PowerShell. Anda dapat menggunakan Get-EventLog dengan parameter ComputerName meskipun komputer Anda tidak dikonfigurasi untuk menjalankan perintah jarak jauh.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EntryType

Menentukan, sebagai array string, jenis entri peristiwa yang didapat cmdlet ini.

Nilai yang dapat diterima untuk parameter ini adalah:

  • Kesalahan
  • Informasi
  • FailureAudit
  • SuccessAudit
  • Peringatan
Type:String[]
Aliases:ET
Accepted values:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Index

Menentukan nilai indeks yang akan didapatkan dari log peristiwa. Parameter menerima string nilai yang dipisahkan koma.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

Menentukan ID Instans yang akan didapatkan dari log peristiwa. Parameter menerima string nilai yang dipisahkan koma.

Type:Int64[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Menampilkan daftar log kejadian pada komputer.

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

-LogName

Menentukan nama satu log peristiwa. Untuk menemukan nama log, gunakan Get-EventLog -List. Karakter kartubebas diizinkan. Parameter ini diperlukan.

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

-Message

Menentukan string dalam pesan peristiwa. Anda dapat menggunakan parameter ini untuk mencari pesan yang berisi kata atau frasa tertentu. Kartubebas diizinkan.

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

-Newest

Dimulai dengan peristiwa terbaru dan mendapatkan jumlah peristiwa yang ditentukan. Jumlah peristiwa diperlukan, misalnya -Newest 100. Menentukan jumlah maksimum peristiwa yang dikembalikan.

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

-Source

Menentukan, sebagai array string, sumber yang ditulis ke log yang didapat cmdlet ini. Kartubebas diizinkan.

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

-UserName

Menentukan, sebagai array string, nama pengguna yang terkait dengan peristiwa. Masukkan pola nama atau nama, seperti User01, , User*atau Domain01\User*. Kartubebas diizinkan.

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

Input

None

Anda tidak dapat menyalurkan input ke Get-EventLog.

Output

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

Jika parameter LogName ditentukan, output adalah kumpulan objek System.Diagnostics.EventLogEntry.

Jika hanya parameter Daftar yang ditentukan, output adalah kumpulan objek System.Diagnostics.EventLog .

Jika parameter Daftar dan AsString ditentukan, outputnya adalah kumpulan objek System.String.

Catatan

Cmdlet Get-EventLog dan Get-WinEvent tidak didukung di Windows Preinstallation Environment (Windows PE).