Get-WinEvent
Yerel ve uzak bilgisayarlardaki olay günlüklerinden ve olay izleme günlük dosyalarından olayları alır.
Syntax
GetLogSet (Varsayılan)
Get-WinEvent
[[-LogName] <String[]>]
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
ListLogSet
Get-WinEvent
[-ListLog] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[<CommonParameters>]
ListProviderSet
Get-WinEvent
[-ListProvider] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
GetProviderSet
Get-WinEvent
[-ProviderName] <String[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
FileSet
Get-WinEvent
[-Path] <String[]>
[-MaxEvents <Int64>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Oldest]
[<CommonParameters>]
HashQuerySet
Get-WinEvent
[-FilterHashtable] <Hashtable[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[-Oldest]
[<CommonParameters>]
XmlQuerySet
Get-WinEvent
[-FilterXml] <XmlDocument>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Oldest]
[<CommonParameters>]
Description
Bu cmdlet yalnızca Windows platformunda kullanılabilir.
Get-WinEvent cmdlet'i, System ve Application günlükleri gibi klasik günlükler de dahil olmak üzere olay günlüklerinden olayları alır. Cmdlet, Windows Vista'da kullanıma sunulan Windows Olay Günlüğü teknolojisi tarafından oluşturulan olay günlüklerinden ve Windows için Olay İzleme (ETW) tarafından oluşturulan günlük dosyalarındaki olaylardan veri alır. varsayılan olarak, Get-WinEvent olay bilgilerini en yeniden en eskiye doğru sırasıyla döndürür.
Get-WinEvent olay günlüklerini ve olay günlüğü sağlayıcılarını listeler. Komutu kesmek için CTRL+Ctuşlarına basın. Olayları seçili günlüklerden veya seçili olay sağlayıcıları tarafından oluşturulan günlüklerden alabilirsiniz. Ayrıca, birden çok kaynaktan gelen olayları tek bir komutta birleştirebilirsiniz.
Get-WinEvent XPath sorgularını, yapılandırılmış XML sorgularını ve karma tablo sorgularını kullanarak olayları filtrelemenizi sağlar.
PowerShell'i Yönetici olarak çalıştırmıyorsanız, günlükle ilgili bilgileri alamadığınız hata iletileri görebilirsiniz.
Örnekler
Örnek 1: Yerel bir bilgisayardan tüm günlükleri alma
Bu komut yerel bilgisayardaki tüm olay günlüklerini alır. Günlükler, Get-WinEvent bunları aldığı sırayla listelenir. Klasik günlükler önce alınır ve ardından yeni Windows Olay günlükleri alınır.
Bir günlüğün RecordCount boş veya sıfır olan null olabilir.
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'i bilgisayardan günlük bilgilerini alır.
ListLog parametresi, her günlükle ilgili bilgileri görüntülemek için yıldız işareti (*) joker karakterini kullanır.
Örnek 2: Klasik Kurulum günlüğünü alma
Bu komut, klasik Kurulum günlüğünü temsil eden bir EventLogConfiguration nesnesi alır. nesnesi, günlükle ilgili dosya boyutu, sağlayıcı, dosya yolu ve günlüğün etkinleştirilip etkinleştirilmediği gibi bilgileri içerir.
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 :
Get-WinEvent cmdlet'i, Kurulumu günlüğünü belirtmek için ListLog parametresini kullanır. Nesnesi, işlem hattı Format-List cmdlet'ine gönderilir.
Format-List, her özelliği görüntülemek için yıldız işareti () joker karakteriyle * parametresini kullanır.
Örnek 3: Klasik Güvenlik günlüğünü yapılandırma
Bu komut, klasik Güvenlik günlüğünü temsil eden bir EventLogConfiguration nesnesi alır. Nesne daha sonra günlük için maksimum dosya boyutu, dosya yolu ve günlüğün etkinleştirilip etkinleştirilmediği gibi ayarları yapılandırmak için kullanılır.
$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
$log.SaveChanges()
Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
$ErrMsg = 'You don't 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, Get-WinEvent Güvenlik günlüğünü belirtmek için ListLog parametresini kullanır. Nesnesi bir değişkene kaydedilir.
MaximumSizeInBytes özelliği nesnede 1 gigabayt olarak ayarlanır.
SaveChanges yöntemi, erişim ihlallerini işlemek için bir deneme bloğunun içinde değişikliği sisteme göndermek için çağrılır.
Get-WinEvent Cmdlet, Güvenlik günlüğünde yeniden çağrılır ve MaximumSizeInBytes özelliğinin Format-List makineye kaydedildiğini doğrulamak için cmdlet'e yöneltilir.
Örnek 4: Sunucudan olay günlüklerini alma
Bu komut yalnızca olay içeren yerel bilgisayarda olay günlüklerini alır. Günlüğün RecordCount null veya sıfır olabilir. Örnekte $_ değişkeni kullanılır. Daha fazla bilgi için bkz. 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'i bilgisayardan günlük bilgilerini alır.
ListLog parametresi, her günlükle ilgili bilgileri görüntülemek için yıldız işareti (*) joker karakterini kullanır.
ComputerName parametresi, yerel bilgisayardan günlüklerin alın localhostbelirtir. Nesneler işlem hattına Where-Object cmdlet'ine gönderilir.
Where-Object yalnızca veri içeren günlükleri döndürmek için $_.RecordCount kullanır.
$_, işlem hattındaki geçerli nesneyi temsil eden bir değişkendir.
RecordCount, nesnenin null olmayan bir değere sahip bir özelliğidir.
Örnek 5: Birden çok sunucudan olay günlüklerini alma
Bu örnek, üç bilgisayarda Uygulama olay günlüklerini temsil eden nesneleri alır: Server01, Server02 ve Server03.
foreach parametresi yalnızca bir değer kabul ettiğinden anahtar sözcüğü kullanılır. Daha fazla bilgi için bkz. 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
$S değişkeni üç sunucu adını depolar: Server01, Server02ve Server03.
foreach deyimi, ($Server in $S)her sunucuyu işlemek için bir döngü kullanır. deyimi foreach bloğu komutunu Get-WinEvent çalıştırır.
ListLog parametresi, Uygulama günlüğünü belirtir.
ComputerName parametresi, her sunucudan günlük bilgilerini almak için $Server değişkenini kullanır.
Nesneler işlem hattına Select-Object cmdlet'ine gönderilir. Format-Table cmdlet'ine gönderilir.
Otomatik Boyutlandır parametresi çıkışı ekrana sığacak şekilde biçimlendirmektedir.
Örnek 6: Olay günlüğü sağlayıcılarını ve günlük adlarını alma
Bu komut, olay günlüğü sağlayıcılarını ve yazdıkları günlükleri alır.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Get-WinEvent cmdlet'i bilgisayardan günlük bilgilerini alır.
ListProvider parametresi, her sağlayıcı hakkındaki bilgileri görüntülemek için yıldız işareti (*) joker karakterini kullanır. Çıktıda,
Örnek 7: Belirli bir günlüğe yazan tüm olay günlüğü sağlayıcılarını alma
Bu komut, Uygulama günlüğüne yazan tüm sağlayıcıları alır.
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Get-WinEvent cmdlet'i bilgisayardan günlük bilgilerini alır.
ListLog parametresi, söz diziminin nesnelerini almak için Application kullanır.
ProviderNames nesnesinin bir özelliğidir ve Uygulama günlüğüne yazan sağlayıcıları görüntüler.
Örnek 8: Belirli bir dize içeren olay günlüğü sağlayıcısı adlarını alma
Bu komut, sağlayıcının adına belirli bir dize içeren adlara sahip olay günlüğü sağlayıcılarını alır.
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'i bilgisayardan günlük bilgilerini alır.
ListProvider parametresi, sağlayıcı adının herhangi bir yerinde * bulmak için yıldız işareti () joker karakterini kullanır.
Örnek 9: Olay sağlayıcısının oluşturduğu Olay Kimliklerini alma
Bu komut, Microsoft-Windows-GroupPolicy olay sağlayıcısının olay açıklamasıyla birlikte oluşturduğu Olay Kimliklerini listeler.
(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'i bilgisayardan günlük bilgilerini alır. Format-Table cmdlet'ine gönderilir.
Format-Table, olay nesnelerinin Kimliği ve Açıklama görüntüler.
Örnek 10: Olay nesnesi özelliklerinden günlük bilgilerini alma
Bu örnekte, olay nesnesi özelliklerini kullanarak bir günlüğün içeriği hakkında bilgi alma işlemi gösterilmektedir. Olay nesneleri bir değişkende depolanır ve Olay Kimliği ve Düzeyigöre gruplandırılır ve sayılır.
$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
Get-WinEvent cmdlet'i, Windows PowerShell olay günlüğünü belirtmek için LogName parametresini kullanır. Olay nesneleri $Event değişkeninde depolanır.
özelliği, günlüğe kaydedilen olayların toplam sayısını gösterir.
$Event değişkeni, işlem hattından Group-Object cmdlet'ine gönderilir.
Group-Object
Id özelliğini belirtmek için Property parametresini kullanır ve nesneleri olay kimliği değerine göre sayar.
NoElement parametresi, nesne çıkışından diğer özellikleri kaldırır. Gruplandırılmış nesneler işlem hattına Sort-Object cmdlet'ine gönderilir.
Sort-Object, nesneleri Countgöre sıralamak için Özelliği parametresini kullanır.
Azalan parametresi, çıktıyı en yüksekten en düşüğe doğru sayıya göre görüntüler. Çıktıda, Sayısı sütunu her olayın toplam sayısını içerir.
Ad sütunu gruplandırılmış olay kimliği numaralarını içerir.
$Event değişkeni, işlem hattından Group-Object cmdlet'ine gönderilir.
Group-Object, LevelDisplayName özelliğini belirtmek için Özelliği parametresini kullanır ve LevelDisplayNametarafından nesneleri sayar. Nesneler, Uyarı ve Bilgilerigibi düzeylere göre gruplandırılır.
NoElement parametresi çıkıştan diğer özellikleri kaldırır. Çıktıda, Sayısı sütunu her olayın toplam sayısını içerir.
Adı sütunu, LevelDisplayNamegruplandırılan öğesini içerir.
Örnek 11: Adında belirtilen dize bulunan hata olaylarını alma
Bu örnekte, virgülle ayrılmış günlük adları dizesi kullanılır. Çıkış, hata veya uyarı ve günlük adı gibi düzeye göre gruplandırılır.
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'i bilgisayardan günlük bilgilerini alır.
LogName parametresi, günlük adlarını belirtmek için yıldız işareti (*) joker karakteriyle virgülle ayrılmış bir dize kullanır. Nesneler işlem hattına Group-Object cmdlet'ine gönderilir.
Group-Object, nesneleri LevelDisplayName ve LogNamegöre gruplandırmak için Özelliği parametresini kullanır.
NoElement parametresi çıkıştan diğer özellikleri kaldırır. Gruplandırılmış nesneler işlem hattına Format-Table cmdlet'ine gönderilir.
Format-Table, sütunları biçimlendirmek için Otomatik Boyutlandırma parametresini kullanır.
Sayısı sütunu her olayın toplam sayısını içerir.
Adı sütunu, LevelDisplayName ve LogNameiçerir.
Örnek 12: Arşivlenmiş olay günlüğünden olay alma
Get-WinEvent kaydedilen günlük dosyalarından olay bilgilerini alabilir. Bu örnek, yerel bilgisayarda depolanan arşivlenmiş bir PowerShell günlüğü kullanır.
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'i bilgisayardan günlük bilgilerini alır.
Path parametresi dizin ve dosya adını belirtir.
Örnek 13: Arşivlenmiş bir olay günlüğünden belirli sayıda olay alma
Bu komutlar arşivlenmiş bir olay günlüğünden belirli sayıda olay alır.
Get-WinEvent, en fazla sayıda olay veya en eski olayları alabilen parametrelere sahiptir. Bu örnek , C:\Test\PowerShellCore Operational.evtx içinde depolanan arşivlenmiş bir PowerShell günlüğü kullanır.
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'i bilgisayardan günlük bilgilerini alır.
Path parametresi dizini ve dosya adını belirtir.
MaxEvents parametresi, en yeniden en eskiye kadar 100 kaydın görüntüleneceğini belirtir.
Örnek 14: Windows için Olay İzleme
Windows için Olay İzleme (ETW), olaylar gerçekleştikçe olayları günlüğe yazar. Olaylar en eskiden en yeniye sırasıyla depolanır. Arşivlenen ETW dosyası, .etlgibi bir olarak kaydedilir.
Olaylar günlüğe yazıldıkları sırayla listelenir, bu nedenle En Eski parametresi gereklidir.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
Sort-Object -Property TimeCreated -Descending |
Select-Object -First 100
Get-WinEvent cmdlet'i arşivlenen dosyadan günlük bilgilerini alır.
Path parametresi dizin ve dosya adını belirtir.
En Eski parametresi, olayların yazıldıkları sırayla, en eskiden en yeniye çıktısını almak için kullanılır. Nesneler işlem hattını Sort-Object cmdlet'ine gönderilir Sort-Object nesneleri TimeCreated özelliğinin değerine göre azalan düzende sıralar. Nesneler, işlem hattından en yeni 100 olayı görüntüleyen Select-Object cmdlet'ine gönderilir.
Örnek 15: Olay izleme günlüğünden olay alma
Bu örnekte, bir olay izleme günlük dosyasından (.etl) ve arşivlenmiş bir Windows PowerShell günlük dosyasından (.evtx) olayların nasıl alınacakları gösterilmektedir. Birden çok dosya türünü tek bir komutta birleştirebilirsiniz.
Dosyalar aynı türde .etl parametresini gerektirir, ancak En Eski parametresi her dosya için geçerlidir.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
Get-WinEvent cmdlet'i arşivlenen dosyalardan günlük bilgilerini alır.
Path parametresi, her dosya dizinini ve dosya adını belirtmek için virgülle ayrılmış bir liste kullanır.
En Eski parametresi, olayların yazıldıkları sırayla, en eskiden en yeniye çıktısını almak için kullanılır. Nesneler işlem hattına Where-Object cmdlet'ine gönderilir.
Where-Object
403kimliğine sahip olayları bulmak için bir betik bloğu kullanır.
$_ değişkeni işlem hattındaki geçerli nesneyi temsil eder ve Kimliği Olay Kimliği özelliğidir.
Örnek 16: Olay günlüğü sonuçlarını filtreleme
Bu örnekte, bir olay günlüğünden olayları filtrelemek ve seçmek için çeşitli yöntemler gösterilmektedir. Tüm bu komutlar , Windows PowerShell olay günlüğünden son 24 saat içinde gerçekleşen olayları alır.
Filtre yöntemleri, Where-Object cmdlet'ini kullanmaktan daha verimlidir. Nesneler alınırken filtreler uygulanır.
Where-Object tüm nesneleri alır ve ardından tüm nesnelere filtreler uygular.
# 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
Örnek 17: Uygulama günlüğünden olay almak için FilterHashtable kullanma
Bu örnekte, Application günlüğünden olay almak için FilterHashtable parametresi kullanılır. Karma tablo anahtar/değer çiftlerini kullanır.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Cmdlet, Get-Date geçerli tarihten iki gün önceki bir tarihi almak için AddDays yöntemini kullanır. date nesnesi $Date değişkeninde depolanır.
Get-WinEvent cmdlet'i günlük bilgilerini alır. Çıktıyı filtrelemek için FilterHashtable parametresi kullanılır.
LogName anahtarı değeri Uygulama günlüğü olarak belirtir.
StartTime anahtarı, $Date değişkeninde depolanan değeri kullanır.
Örnek 18: Uygulama hatalarını almak için FilterHashtable kullanma
Bu örnekte, geçen hafta içinde oluşan Internet Explorer uygulama hatalarını bulmak için FilterHashtable
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
Logname='Application'
ProviderName='Application Error'
Data='iexplore.exe'
StartTime=$StartTime
}
Cmdlet, Get-Date geçerli tarihten yedi gün önceki bir tarihi almak için AddDays yöntemini kullanır. date nesnesi $StartTime değişkeninde depolanır.
Get-WinEvent cmdlet'i günlük bilgilerini alır. Çıktıyı filtrelemek için FilterHashtable parametresi kullanılır.
LogName anahtarı değeri Uygulama günlüğü olarak belirtir. $StartTime değişkeninde depolanan değeri kullanır.
Örnek 19: Uygulama hatalarını filtrelemek için SuppressHashFilter kullanma
Yukarıdaki Örnek 16'da olduğu gibi, bu örnekte de Application günlüğünden olay almak için FilterHashtable parametresi kullanılır. Ancak Bilgi düzeyi olaylarını filtrelemek için SuppressHashFilter anahtarını ekleyeceğiz.
$Date = (Get-Date).AddDays(-2)
$filter = @{
LogName='Application'
StartTime=$Date
SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter
Bu örnekte, Get-WinEvent 4 Düzeyi (Bilgi) olanlar dışında son iki gün için Uygulama günlüğünden tüm olayları alır.
Parametreler
-ComputerName
Bu cmdlet'in olay günlüklerinden olay aldığı bilgisayarın adını belirtir. NetBIOS adını, IP adresini veya bilgisayarın tam etki alanı adını (FQDN) yazın. Varsayılan değer localhost
Uzak bilgisayarlardan olay günlüklerini almak için, olay günlüğü hizmetinin güvenlik duvarı bağlantı noktasını uzaktan erişime izin verecek şekilde yapılandırın.
Bu cmdlet PowerShell uzaktan iletişimini kullanmaz. Bilgisayarınız uzak komutları çalıştıracak şekilde yapılandırılmamış olsa bile ComputerName parametresini kullanabilirsiniz.
Parametre özellikleri
| Tür: | String |
| Default value: | Local computer |
| Joker karakterleri destekler: | False |
| DontShow: | False |
| Diğer adlar: | Cn |
Parametre kümeleri
GetLogSet
| 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 |
ListLogSet
| 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 |
ListProviderSet
| 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 |
GetProviderSet
| 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 |
HashQuerySet
| 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 |
XmlQuerySet
| 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 |
-Credential
Bu eylemi gerçekleştirme iznine sahip bir kullanıcı hesabı belirtir. Varsayılan değer geçerli kullanıcıdır.
User01 veya Domain01\User01gibi bir kullanıcı adı yazın. Alternatif olarak, cmdlet'i tarafından oluşturulan nesne gibi Get-Credential nesnesi de girin. Bir kullanıcı adı yazarsanız parola girmeniz istenir. Yalnızca parametre adını yazarsanız, sizden hem kullanıcı adı hem de parola istenir.
Parametre özellikleri
| Tür: | PSCredential |
| Default value: | Current user |
| Joker karakterleri destekler: | False |
| DontShow: | False |
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 |
-FilterHashtable
Bir veya daha fazla olay günlüğünden olayları seçmek için karma tablo biçiminde bir sorgu belirtir. Sorgu, bir veya daha fazla anahtar/değer çifti içeren bir karma tablo içerir.
Karma tablo sorguları aşağıdaki kurallara sahiptir:
- Anahtarlar ve değerler büyük/küçük harfe duyarlı değildir.
- Joker karakterler yalnızca LogName ve ProviderName anahtarlarıyla ilişkili değerlerde geçerlidir.
- Her anahtar, her karma tabloda yalnızca bir kez listelenebilir.
-
Yol değeri,
.etl,.evtve.evtxgünlük dosyalarının yollarını alır. - LogName, Pathve ProviderName anahtarları aynı sorguda kullanılabilir.
- UserID anahtarı geçerli bir güvenlik tanımlayıcısı (SID) veya geçerli bir System.Security.Principal.NTAccount nesnesi oluşturmak için kullanılabilecek bir etki alanı hesabı adı alabilir.
- Veri değeri, adsız bir alanda olay verilerini alır. Örneğin, klasik olay günlüklerindeki olaylar.
-
<named-data>anahtarı adlandırılmış bir olay veri alanını temsil eder.
AnahtarGet-WinEvent çiftini yorumlayamıyorsa, anahtarı olaydaki olay verileri için büyük/küçük harfe duyarlı bir ad olarak yorumlar.
Geçerli Get-WinEventanahtarı/değer çiftleri aşağıdaki gibidir:
- LogName
-
SağlayıcıAdı=
<String[]> -
Yol=
<String[]> -
Anahtar Sözcükler=
<Long[]> -
Kimliği=
<Int32[]> -
Düzeyi=
<Int32[]> - StartTime
- EndTime
- UserID
-
Veri=
<String[]> <named-data>=<String[]>-
SuppressHashFilter=
<Hashtable>
Parametre özellikleri
| Tür: | |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
HashQuerySet
| 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 |
-FilterXml
Bu cmdlet'in bir veya daha fazla olay günlüğünden olayları seçtiği yapılandırılmış bir XML sorgusu belirtir.
Geçerli bir XML sorgusu oluşturmak için Özel Görünüm Oluştur
Birkaç XPath deyimi içeren karmaşık bir sorgu oluşturmak için XML sorgusu kullanın. XML biçimi ayrıca, olayları sorgunun dışında tutan xml
FilterHashtable parametresini kullanarak bir Suppress öğesi de oluşturabilirsiniz.
Parametre özellikleri
| Tür: | XmlDocument |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
XmlQuerySet
| 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 |
-FilterXPath
Bu cmdlet'in bir veya daha fazla günlükten olay seçtiği bir XPath sorgusu belirtir.
XPath dili hakkında daha fazla bilgi için bkz. XPath Başvurusu ve Olay Seçimi'ninSeçim Filtreleri bölümü.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
GetLogSet
| 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 |
GetProviderSet
| 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 |
FileSet
| 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 |
-Force
Diğer olay günlüklerine ek olarak hata ayıklama ve analiz günlüklerini alır. Name parametresinin değeri joker karakter içerdiğinde hata ayıklama veya analiz günlüğü almak için Force parametresi gerekir.
Varsayılan olarak, hata ayıklama veya analiz günlüğünün tam adını belirtmediğiniz sürece Get-WinEvent cmdlet'i bu günlükleri dışlar.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
GetLogSet
| 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 |
ListLogSet
| 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 |
GetProviderSet
| 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 |
HashQuerySet
| 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 |
-ListLog
Olay günlüklerini belirtir. Olay günlüğü adlarını virgülle ayrılmış bir listeye girin. Joker karakterlere izin verilir. Tüm günlükleri almak için yıldız işareti (*) joker karakterini kullanın.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
ListLogSet
| 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 |
-ListProvider
Bu cmdlet'in aldığı olay günlüğü sağlayıcılarını belirtir. Olay günlüğü sağlayıcısı, olay günlüğüne olay yazan bir program veya hizmettir.
Sağlayıcı adlarını virgülle ayrılmış bir listeye girin. Joker karakterlere izin verilir. Bilgisayardaki tüm olay günlüklerinin sağlayıcılarını almak için yıldız işareti (*) joker karakterini kullanın.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
ListProviderSet
| 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 |
-LogName
Bu cmdlet'in olayları almak için olay günlüklerini belirtir. Olay günlüğü adlarını virgülle ayrılmış bir listeye girin. Joker karakterlere izin verilir. Günlük adlarını Get-WinEvent cmdlet'ine de yöneltebilirsiniz.
Uyarı
PowerShell, isteyebileceğiniz günlük miktarını sınırlamaz.
Get-WinEvent Ancak, cmdlet 256 sınırı olan Windows API'sini sorgular. Bu, tüm günlüklerinizi tek seferde filtrelemeyi zorlaştırabilir. Aşağıdaki gibi her günlükte yinelemek için bir döngü kullanarak bu sorunu geçici olarak foreach düzeltebilirsiniz: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.LogName }
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
GetLogSet
| Position: | 0 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-MaxEvents
Döndürülen en fazla olay sayısını belirtir. 100 gibi bir tamsayı girin. Varsayılan değer, günlüklerdeki veya dosyalardaki tüm olayları döndürmektir.
Parametre özellikleri
| Tür: | Int64 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
GetLogSet
| 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 |
GetProviderSet
| 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 |
FileSet
| 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 |
HashQuerySet
| 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 |
XmlQuerySet
| 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 |
-Oldest
Bu cmdlet'in olayları en eski ilk sırada aldığını belirtin. Varsayılan olarak, olaylar en yeni ilk sırada döndürülür.
Bu parametre, .etl ve .evt dosyalarından ve hata ayıklama ve analiz günlüklerinden olayları almak için gereklidir. Bu dosyalarda olaylar en eski ilk sırada kaydedilir ve olaylar yalnızca en eski ilk sırada döndürülebilir.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
GetLogSet
| 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 |
GetProviderSet
| 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 |
FileSet
| 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 |
HashQuerySet
| 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 |
XmlQuerySet
| 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 |
-Path
Bu cmdlet'in olayları almak için olay günlüğü dosyalarının yolunu belirtir. Günlük dosyalarının yollarını virgülle ayrılmış bir listeye girin veya dosya yolu desenleri oluşturmak için joker karakterler kullanın.
Get-WinEvent, .evt, .evtxve .etl dosya adı uzantılarına sahip dosyaları destekler. Aynı komuta farklı dosyalardan ve dosya türlerinden olaylar ekleyebilirsiniz.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
| Diğer adlar: | PSPath |
Parametre kümeleri
FileSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ProviderName
Dize dizisi olarak, bu cmdlet'in olayları aldığı olay günlüğü sağlayıcılarını belirtir. Sağlayıcı adlarını virgülle ayrılmış bir listeye girin veya sağlayıcı adı desenleri oluşturmak için joker karakterler kullanın.
Olay günlüğü sağlayıcısı, olay günlüğüne olay yazan bir program veya hizmettir. Bu bir PowerShell sağlayıcısı değildir.
Parametre özellikleri
| Tür: | String[] |
| Default value: | None |
| Joker karakterleri destekler: | True |
| DontShow: | False |
Parametre kümeleri
GetProviderSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | True |
| 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
String
Bu cmdlet'e bir LogName (dize) kanal oluşturabilirsiniz.
XmlDocument
Bir FilterXML sorgusunu bu cmdlet'e yöneltebilirsiniz.
Hashtable
FilterHashtable sorgusunu bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
EventLogConfiguration
ListLog parametresiyle bu cmdlet EventLogConfiguration nesnelerini döndürür.
EventLogRecord
Varsayılan olarak, bu cmdlet EventLogRecord nesnelerini döndürür.
ProviderMetadata
ListProvider parametresiyle, bu cmdlet ProviderMetadata nesnelerini döndürür.
Notlar
Get-WinEvent, Windows Vista ve windows'un sonraki sürümlerini çalıştıran bilgisayarlarda Get-EventLog cmdlet'ini değiştirmek için tasarlanmıştır.
Get-EventLog olayları yalnızca klasik olay günlüklerinde alır.
Get-EventLog geriye dönük uyumluluk için korunur.
Get-WinEvent ve Get-EventLog cmdlet'leri Windows Yükleme Öncesi Ortamı'nda (Windows PE) desteklenmez.