Get-EventLog

Yerel bilgisayardaki veya uzak bilgisayarlardaki olay günlüğündeki olayları veya olay günlüklerinin listesini alır.

Syntax

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>]

Description

cmdlet'i Get-EventLog yerel ve uzak bilgisayarlardan olayları ve olay günlüklerini alır. Varsayılan olarak, Get-EventLog günlükleri yerel bilgisayardan alır. Uzak bilgisayarlardan günlükleri almak için ComputerName parametresini kullanın.

Olayları aramak için parametreleri ve özellik değerlerini kullanabilirsiniz Get-EventLog . cmdlet'i belirtilen özellik değerleriyle eşleşen olayları alır.

İsim içeren EventLog PowerShell cmdlet'leri yalnızca Uygulama, Sistem veya Güvenlik gibi Windows klasik olay günlüklerinde çalışır. Windows Vista ve sonraki Windows sürümlerinde Windows Olay Günlüğü teknolojisini kullanan günlükleri almak için kullanın Get-WinEvent.

Not

Get-EventLog kullanım dışı bırakılmış bir Win32 API'si kullanır. Sonuçlar doğru olmayabilir. Bunun yerine cmdlet'ini Get-WinEvent kullanın.

Örnekler

Örnek 1: Yerel bilgisayarda olay günlüklerini alma

Bu örnek, yerel bilgisayarda kullanılabilen olay günlüklerinin listesini görüntüler. Günlük sütunundaki adlar LogName parametresiyle birlikte hangi günlüğün olaylar için aranacağını belirtmek için kullanılır.

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, kullanılabilir günlükleri görüntülemek için List parametresini kullanır.

Örnek 2: Yerel bilgisayardaki bir olay günlüğünden son girdileri alma

Bu örnek, Sistem olay günlüğünden son girdileri alır.

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...

Cmdlet, Get-EventLog Sistem olay günlüğünü belirtmek için LogName parametresini kullanır. En Yeni parametresi en son beş olayı döndürür.

Örnek 3: Olay günlüğünde belirli sayıda girdi için tüm kaynakları bulma

Bu örnek, Sistem olay günlüğündeki en son 1000 girdiye dahil edilen tüm kaynakların nasıl bulunduğunu gösterir.

$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

Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. En Yeni parametresi en son 1000 olayı seçer. Olay nesneleri değişkeninde $Events depolanır. Nesneler $Events işlem hattına cmdlet'ine Group-Object gönderilir. Group-ObjectNesneleri kaynağa göre gruplandırmak için Property parametresini kullanır ve her kaynak için nesne sayısını sayar. NoElement parametresi, grup üyelerini çıkıştan kaldırır. cmdlet'iSort-Object, her kaynak adının sayısına göre sıralamak için Property parametresini kullanır. Descending parametresi, listeyi en yüksekten en düşüğe doğru sayıya göre sıralar.

Örnek 4: Belirli bir olay günlüğünden hata olayları alma

Bu örnek, Sistem olay günlüğünden hata olayları alır.

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...

Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. EntryType parametresi olayları yalnızca Error olaylarını gösterecek şekilde filtreler.

Örnek 5: Olay günlüğünden InstanceId ve Source değerine sahip olayları alma

Bu örnek, belirli bir InstanceId ve Source için Sistem günlüğünden olayları alır.

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...

Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. InstanceID parametresi, belirtilen Örnek Kimliğine sahip olayları seçer. Source parametresi olay özelliğini belirtir.

Örnek 6: Birden çok bilgisayardan olay alma

Bu komut, üç bilgisayarda Sistem olay günlüğünden olayları alır: Server01, Server02 ve Server03.

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

Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. ComputerName parametresi, olay günlüklerini almak istediğiniz bilgisayarları listelemek için virgülle ayrılmış bir dize kullanır.

Örnek 7: İletide belirli bir sözcüğü içeren tüm olayları alma

Bu komut, Sistem olay günlüğünde olayın iletisinde belirli bir sözcüğü içeren tüm olayları alır. Belirtilen İleti parametrenizin değeri iletinin içeriğine eklenmiş ancak PowerShell konsolunda görüntülenmemiş olabilir.

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'...

Cmdlet, Get-EventLog Sistem olay günlüğünü belirtmek için LogName parametresini kullanır. message parametresi, her olayın ileti alanında aranacak sözcüğü belirtir.

Örnek 8: Bir olayın özellik değerlerini görüntüleme

Bu örnekte, bir olayın tüm özelliklerinin ve değerlerinin nasıl görüntüleneceği gösterilmektedir.

$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          :

Cmdlet, Get-EventLog Sistem olay günlüğünü belirtmek için LogName parametresini kullanır. En Yeni parametresi en son olay nesnesini seçer. nesnesi değişkeninde $A depolanır. değişkenindeki $A nesnesi, işlem hattına cmdlet'ine Select-Object gönderilir. Select-Objectnesnenin tüm özelliklerini seçmek için Bir yıldız işareti (*) ile Property parametresini kullanır.

Örnek 9: Kaynak ve olay kimliği kullanarak olay günlüğünden olay alma

Bu örnek, belirtilen Kaynak ve Olay Kimliği için olayları alır.

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.

Cmdlet, Get-EventLog Uygulama olay günlüğünü belirtmek için LogName parametresini kullanır. Source parametresi uygulama adını (Outlook) belirtir. Nesneler işlem hattına cmdlet'ine Where-Object gönderilir. İşlem hattındaki her nesne için Where-Object cmdlet, Olay Kimliği özelliğini belirtilen değerle karşılaştırmak için değişkenini $_.EventID kullanır. Nesneler işlem hattına cmdlet'ine Select-Object gönderilir. Select-Object , PowerShell konsolunda görüntülenecek özellikleri seçmek için Property parametresini kullanır.

Örnek 10: Olayları alma ve bir özelliğe göre gruplandırma

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

Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. UserName parametresi, kullanıcı adının bir bölümünü belirtmek için yıldız işareti (*) joker karakterini içerir. Olay nesneleri işlem hattına cmdlet'ine Group-Object gönderilir. Group-Object, UserName özelliğinin nesneleri gruplandırmak ve her kullanıcı adı için nesne sayısını saymak için kullanıldığını belirtmek için Property parametresini kullanır. NoElement parametresi, grup üyelerini çıkıştan kaldırır. Nesneler işlem hattına cmdlet'ine Select-Object gönderilir. Select-Object , PowerShell konsolunda görüntülenecek özellikleri seçmek için Property parametresini kullanır.

Örnek 11: Belirli bir tarih ve saat aralığında gerçekleşen olayları alma

Bu örnek, belirtilen tarih ve saat aralığı için Sistem olay günlüğünden Hata olaylarını alır. Before ve After parametreleri tarih ve saat aralığını ayarlar ancak çıktının dışında tutulur.

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

Cmdlet tarih Get-Date ve saat belirtmek için Date parametresini kullanır. DateTime nesneleri ve $End değişkenlerinde $Begin depolanır. Cmdlet, Get-EventLog Sistem günlüğünü belirtmek için LogName parametresini kullanır. EntryType parametresi Error olay türünü belirtir. Tarih ve saat aralığı After parametresi ve değişkeni ile $Begin Before parametresi ve $End değişkeni tarafından ayarlanır.

Parametreler

-After

Belirtilen tarih ve saatten sonra gerçekleşen olayları alır. After parametresi tarih ve saati çıktının dışında tutulur. Cmdlet tarafından Get-Date döndürülen değer gibi bir DateTime nesnesi girin.

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

-AsBaseObject

Bu cmdlet'in her olay için standart bir System.Diagnostics.EventLogEntry nesnesi döndürdüğünü gösterir. Bu parametre olmadan, Get-EventLog ek EventLogName, Source ve InstanceId özelliklerine sahip genişletilmiş bir PSObject nesnesi döndürür.

Bu parametrenin etkisini görmek için, olayları cmdlet'ine yöneltin Get-Member ve sonuçtaki TypeName değerini inceleyin.

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

-AsString

Bu cmdlet'in çıkışı nesneler yerine dize olarak döndürdüğünü gösterir.

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

-Before

Belirtilen tarih ve saatten önce gerçekleşen olayları alır. Before parametresi tarih ve saati çıktının dışında tutulur. Cmdlet tarafından Get-Date döndürülen değer gibi bir DateTime nesnesi girin.

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

-ComputerName

Bu parametre uzak bilgisayarın NetBIOS adını, İnternet Protokolü (IP) adresini veya tam etki alanı adını (FQDN) belirtir.

ComputerName parametresi belirtilmezse, Get-EventLog varsayılan olarak yerel bilgisayar olur. parametresi ayrıca yerel bilgisayarı belirtmek için bir nokta (.) kabul eder.

ComputerName parametresi Windows PowerShell uzaktan iletişimini desteklemez. Bilgisayarınız uzak komutları çalıştıracak şekilde yapılandırılmamış olsa bile ComputerName parametresiyle kullanabilirsinizGet-EventLog.

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

-EntryType

Bu cmdlet'in aldığı olayların giriş türünü dize dizisi olarak belirtir.

Bu parametrenin kabul edilebilir değerleri şunlardır:

  • Hata
  • Bilgiler
  • FailureAudit
  • SuccessAudit
  • Uyarı
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

Olay günlüğünden alınacak dizin değerlerini belirtir. parametresi virgülle ayrılmış bir değer dizesi kabul eder.

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

-InstanceId

Olay günlüğünden alınacak Örnek Kimliklerini belirtir. parametresi virgülle ayrılmış bir değer dizesi kabul eder.

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

-List

Bilgisayardaki olay günlüklerinin listesini görüntüler.

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

-LogName

Bir olay günlüğünün adını belirtir. Günlük adlarını bulmak için kullanın Get-EventLog -List. Joker karakterlere izin verilir. Bu parametre zorunludur.

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

-Message

Olay iletisinde bir dize belirtir. Belirli sözcükleri veya tümcecikleri içeren iletileri aramak için bu parametreyi kullanabilirsiniz. Joker karakterlere izin verilir.

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

-Newest

En yeni olaylarla başlar ve belirtilen olay sayısını alır. Olay sayısı gereklidir, örneğin -Newest 100. Döndürülen en fazla olay sayısını belirtir.

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

-Source

Bu cmdlet'in aldığı günlüğe yazılan kaynakları dize dizisi olarak belirtir. Joker karakterlere izin verilir.

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

-UserName

Olaylarla ilişkilendirilmiş kullanıcı adlarını dize dizisi olarak belirtir. , User*Domain01\User*veya gibi User01ad veya ad desenleri girin. Joker karakterlere izin verilir.

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

Girişler

None

Girişi öğesine yöneltemezsiniz Get-EventLog.

Çıkışlar

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

LogName parametresi belirtilirse çıkış, System.Diagnostics.EventLogEntry nesnelerinin bir koleksiyonudur.

Yalnızca List parametresi belirtilirse, çıkış System.Diagnostics.EventLog nesnelerinin bir koleksiyonudur.

Hem List hem de AsString parametreleri belirtilirse, çıkış System.String nesnelerinin bir koleksiyonudur.

Notlar

ve cmdlet'leri Get-EventLogGet-WinEvent Windows Önyükleme Ortamı'nda (Windows PE) desteklenmez.