Aracılığıyla paylaş


Get-EventLog

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

Syntax

LogName (Varsayılan)

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

List

Get-EventLog
    [-ComputerName <String[]>]
    [-List]
    [-AsString]
    [<CommonParameters>]

Description

Get-EventLog cmdlet'i 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 Get-EventLog parametrelerini ve özellik değerlerini kullanabilirsiniz. cmdlet'i belirtilen özellik değerleriyle eşleşen olayları alır.

EventLog adını içeren 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 Get-WinEventkullanın.

Uyarı

Get-EventLog, kullanım dışı bırakılmış bir Win32 API kullanır. Sonuçlar doğru olmayabilir. Bunun yerine Get-WinEvent cmdlet'ini 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, olaylar için hangi günlüğün aranacağını belirtmek için LogName parametresiyle birlikte 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'i, kullanılabilir günlükleri görüntülemek için Listesi 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...

Get-EventLog cmdlet'i, 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

Get-EventLog cmdlet'i, Sistem günlüğünü belirtmek için LogName parametresini kullanır. En Yeni parametresi en son 1000 olayı seçer. Olay nesneleri $Events değişkeninde depolanır. $Events nesneleri işlem hattını Group-Object cmdlet'ine gönderilir. Group-Object, nesneleri kaynağa göre gruplandırmak için Özelliği parametresini kullanır ve her kaynak için nesne sayısını sayar. NoElement parametresi, grup üyelerini çıkıştan kaldırır. Sort-Object cmdlet'i, her kaynak adının sayısına göre sıralamak için Özelliği parametresini kullanır. Azalan 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...

Get-EventLog cmdlet'i, Sistem günlüğünü belirtmek için LogName parametresini kullanır. EntryType parametresi olayları yalnızca Hata 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...

Get-EventLog cmdlet'i, 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

Get-EventLog cmdlet'i, 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 parametresinin 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'...

Get-EventLog cmdlet'i, Sistem olay günlüğünü belirtmek için LogName parametresini kullanır. İleti 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          :

Get-EventLog cmdlet'i, Sistem olay günlüğünü belirtmek için LogName parametresini kullanır. En Yeni parametresi en son olay nesnesini seçer. nesnesi $A değişkeninde depolanır. $A değişkenindeki nesne, işlem hattına Select-Object cmdlet'ine gönderilir. Select-Object, nesnenin tüm özelliklerini seçmek için Özelliği parametresini yıldız işaretiyle (*) 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.

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

Get-EventLog cmdlet'i, 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ını Group-Object cmdlet'ine 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 Özelliği parametresini kullanır. NoElement parametresi, grup üyelerini çıkıştan kaldırır. Nesneler işlem hattına Select-Object cmdlet'ine gönderilir. Select-Object, PowerShell konsolunda görüntülenecek özellikleri seçmek için Özelliği 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. Önce ve Sonra 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...

Get-Date cmdlet'i tarih ve saat belirtmek için Date parametresini kullanır. DateTime nesneleri $Begin ve $End değişkenlerinde depolanır. Get-EventLog cmdlet'i, 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 $Begin değişkeni ile 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'i tarafından döndürülen değer gibi bir Get-Date nesnesi girin.

Parametre özellikleri

Tür:DateTime
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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, Sourceve InstanceId özelliklerine sahip genişletilmiş bir PSObject nesnesi döndürür.

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

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-AsString

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

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

List
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Before

Belirtilen tarih ve saatten önce gerçekleşen olayları alır. Önce parametre tarihi ve saati çıktının dışında tutulur. cmdlet'i tarafından döndürülen değer gibi bir Get-Date nesnesi girin.

Parametre özellikleri

Tür:DateTime
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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 Get-EventLog parametresiyle kullanabilirsiniz.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Cn

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-EntryType

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

Bu parametre için kabul edilebilir değerler şunlardır:

  • Hata
  • Bilgi
  • FailureAudit (Başarısızlık Denetimi)
  • Başarı Denetimi
  • Uyarı

Parametre özellikleri

Tür:

String[]

Default value:None
Kabul edilen değerler:Error, Information, FailureAudit, SuccessAudit, Warning
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:ET

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Index

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

Parametre özellikleri

Tür:

Int32[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-InstanceId

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

Parametre özellikleri

Tür:

Int64[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:1
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-List

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

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

List
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-LogName

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

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:True
DontShow:False
Diğer adlar:LN

Parametre kümeleri

LogName
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

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

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:True
DontShow:False
Diğer adlar:MSG

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

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

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Source

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

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False
Diğer adlar:ABO

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-UserName

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

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

LogName
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

None

girişi Get-EventLogkanala alamazsınız.

Çıkışlar

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

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

Yalnızca Listesi parametresi belirtilirse, çıkış System.Diagnostics.EventLog nesneleri koleksiyonudur.

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

Notlar

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