Get-WinEvent
Pobiera zdarzenia z dzienników zdarzeń i plików dziennika śledzenia zdarzeń na komputerach lokalnych i zdalnych.
Składnia
GetLogSet (Domyślna)
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>]
Opis
Ten cmdlet jest dostępny tylko na platformie Windows.
Polecenie cmdlet Get-WinEvent zwraca informacje o zdarzeniach w kolejności od najnowszych do najstarszych.
Get-WinEvent wyświetla listę dzienników zdarzeń i dostawców dzienników zdarzeń. Aby przerwać polecenie, naciśnij CTRL+C. Zdarzenia można pobierać z wybranych dzienników lub z dzienników generowanych przez wybranych dostawców zdarzeń. Można również połączyć zdarzenia z wielu źródeł w jednym poleceniu.
Get-WinEvent umożliwia filtrowanie zdarzeń przy użyciu zapytań XPath, zapytań ustrukturyzowanych XML i zapytań tabeli skrótów.
Jeśli nie używasz programu PowerShell jako administrator, mogą zostać wyświetlone komunikaty o błędach, których nie można pobrać w dzienniku.
Przykłady
Przykład 1. Pobieranie wszystkich dzienników z komputera lokalnego
To polecenie pobiera wszystkie dzienniki zdarzeń na komputerze lokalnym. Dzienniki są wyświetlane w kolejności Get-WinEvent ich pobierania. Najpierw pobierane są dzienniki klasyczne, a następnie nowe dzienniki zdarzeń systemu Windows.
Istnieje możliwość, że RekordCount dziennika ma wartość null, która jest pusta lub zero.
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
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ListLog używa gwiazdki (*) do wyświetlania informacji o każdym dzienniku.
Przykład 2. Pobieranie klasycznego dziennika instalacji
To polecenie pobiera obiekt
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 :
Polecenie cmdlet Format-List.
Przykład 3. Konfigurowanie klasycznego dziennika zabezpieczeń
To polecenie pobiera obiekt EventLogConfiguration reprezentujący klasyczny dziennik zabezpieczeń. Obiekt jest następnie używany do konfigurowania ustawień dziennika, takich jak maksymalny rozmiar pliku, ścieżka pliku i czy dziennik jest włączony.
$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 :
Polecenie cmdlet Get-WinEvent używa parametru ListLog w celu określenia dziennika zabezpieczeń. Obiekt jest zapisywany w zmiennej. Właściwość MaximumSizeInBytes jest ustawiona na 1 gigabajt obiektu. Metoda SaveChanges jest wywoływana w celu wypchnięcia zmiany do systemu wewnątrz bloku próby w celu obsługi naruszeń dostępu. Polecenie cmdlet Get-WinEvent jest ponownie wywoływane w dzienniku zabezpieczeń i przesyłane potokami do polecenia cmdlet Format-List w celu sprawdzenia, czy właściwość MaximumSizeInBytes została zapisana na maszynie.
Przykład 4. Pobieranie dzienników zdarzeń z serwera
To polecenie pobiera tylko dzienniki zdarzeń na komputerze lokalnym, który zawiera zdarzenia. Istnieje możliwość, że RecordCount dziennika mieć wartość null lub zero. W przykładzie użyto zmiennej $_. Aby uzyskać więcej informacji, zobacz 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
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ListLog używa gwiazdki (*) do wyświetlania informacji o każdym dzienniku. Parametr ComputerName określa pobieranie dzienników z komputera lokalnego localhost. Obiekty są wysyłane w dół potoku do polecenia cmdlet Where-Object.
Where-Object używa $_.RecordCount do zwracania tylko dzienników zawierających dane.
$_ to zmienna reprezentująca bieżący obiekt w potoku.
RecordCount jest właściwością obiektu o wartości innej niż null.
Przykład 5. Pobieranie dzienników zdarzeń z wielu serwerów
Ten przykład pobiera obiekty reprezentujące dzienniki zdarzeń Application na trzech komputerach: Server01, Server02 i Server03. Słowo kluczowe foreach jest używane, ponieważ parametr ComputerName akceptuje tylko jedną wartość. Aby uzyskać więcej informacji, zobacz 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
Zmienna $S przechowuje nazwy trzech serwerów: Server01, Server02i Server03. Instrukcja foreach używa pętli do przetwarzania każdego serwera, ($Server in $S). Blok skryptu w nawiasach klamrowych ({ }) uruchamia polecenie Get-WinEvent. Parametr $Server do pobierania informacji dziennika z każdego serwera.
Obiekty są wysyłane w dół potoku do polecenia cmdlet Select-Object.
Select-Object pobiera właściwości LogMode, MaximumSizeInBytes, RecordCount, LogNamei używa wyrażenia obliczeniowego do wyświetlenia ComputerName przy użyciu zmiennej $Server. Obiekty są wysyłane w dół potoku do polecenia cmdlet Format-Table w celu wyświetlenia danych wyjściowych w konsoli programu PowerShell. Parametr AutoSize formatuje dane wyjściowe tak, aby pasowały do ekranu.
Przykład 6. Pobieranie dostawców dzienników zdarzeń i nazw dzienników
To polecenie pobiera dostawców dziennika zdarzeń i dzienniki, do których zapisują.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ListProvider używa symbolu wieloznakowego gwiazdki (*), aby wyświetlić informacje o każdym dostawcy. W danych wyjściowych Nazwa jest dostawcą, a LogLinks jest dziennikiem zapisywany przez dostawcę.
Przykład 7. Pobieranie wszystkich dostawców dziennika zdarzeń, którzy zapisują w określonym dzienniku
To polecenie pobiera wszystkich dostawców zapisywanych w dzienniku aplikacji
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ListLog
Przykład 8. Pobieranie nazw dostawców dzienników zdarzeń zawierających określony ciąg
To polecenie pobiera dostawców dziennika zdarzeń z nazwami, które zawierają określony ciąg w nazwie dostawcy.
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 : {}
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr
Przykład 9. Pobieranie identyfikatorów zdarzeń generowanych przez dostawcę zdarzeń
To polecenie wyświetla listę identyfikatorów zdarzeń generowanych przez dostawcę zdarzeń Microsoft-Windows-GroupPolicy wraz z opisem zdarzenia.
(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.
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr Format-Table.
Format-Table wyświetla Identyfikator i opis opis obiektów zdarzeń.
Przykład 10. Pobieranie informacji dziennika z właściwości obiektu zdarzenia
W tym przykładzie pokazano, jak uzyskać informacje o zawartości dziennika przy użyciu właściwości obiektu zdarzenia. Obiekty zdarzeń są przechowywane w zmiennej, a następnie grupowane i liczone przez identyfikator zdarzenia i level.
$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
Polecenie cmdlet $Event. Właściwość Count$Eventpokazuje łączną liczbę zarejestrowanych zdarzeń.
Zmienna $Event jest wysyłana w dół potoku do polecenia cmdlet Group-Object.
Group-Object używa parametru property, aby określić właściwość Id i zlicza obiekty według wartości identyfikatora zdarzenia. Parametr NoElement usuwa inne właściwości z danych wyjściowych obiektów. Pogrupowane obiekty są wysyłane w dół potoku do polecenia cmdlet Sort-Object.
Zmienna $Event jest wysyłana w dół potoku do polecenia cmdlet Group-Object.
Przykład 11: Uzyskiwanie zdarzeń błędów, które mają określony ciąg w nazwie
W tym przykładzie użyto ciągu rozdzielanego przecinkami nazw dzienników. Dane wyjściowe są pogrupowane według poziomu, takiego jak błąd lub ostrzeżenie i nazwa dziennika.
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
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr LogName używa ciągu rozdzielanego przecinkami gwiazdką (*) w celu określenia nazw dzienników. Obiekty są wysyłane w dół potoku do polecenia cmdlet Group-Object. Format-Table.
Przykład 12. Pobieranie zdarzeń z zarchiwizowanego dziennika zdarzeń
Get-WinEvent mogą pobierać informacje o zdarzeniach z zapisanych plików dziennika. W tym przykładzie użyto zarchiwizowanego dziennika programu PowerShell przechowywanego na komputerze lokalnym.
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...
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ścieżki
Przykład 13: Pobieranie określonej liczby zdarzeń z zarchiwizowanego dziennika zdarzeń
Te polecenia pobierają określoną liczbę zdarzeń z zarchiwizowanego dziennika zdarzeń.
Get-WinEvent zawiera parametry, które mogą uzyskać maksymalną liczbę zdarzeń lub najstarszych zdarzeń. W tym przykładzie użyto zarchiwizowanego dziennika programu PowerShell przechowywanego w 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
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z komputera. Parametr ścieżki określa katalog i nazwę pliku. Parametr MaxEvents określa, że są wyświetlane 100 rekordów, od najnowszych do najstarszych.
Przykład 14: Śledzenie zdarzeń dla systemu Windows
Śledzenie zdarzeń dla systemu Windows (ETW) zapisuje zdarzenia w dzienniku w miarę występowania zdarzeń. Zdarzenia są przechowywane w kolejności od najstarszych do najnowszych. Zarchiwizowany plik ETW jest zapisywany jako .etl, taki jak TraceLog.etl.
Zdarzenia są wymienione w kolejności, w której są zapisywane w dzienniku, więc wymagany jest parametr Najstarsze.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
Sort-Object -Property TimeCreated -Descending |
Select-Object -First 100
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z zarchiwizowanego pliku. Parametr ścieżki Sort-ObjectSort-Object sortuje obiekty w kolejności malejącej przez wartość właściwości TimeCreated. Obiekty są wysyłane w dół potoku do polecenia cmdlet Select-Object, które wyświetla 100 najnowszych zdarzeń.
Przykład 15. Pobieranie zdarzeń z dziennika śledzenia zdarzeń
W tym przykładzie pokazano, jak pobrać zdarzenia z pliku dziennika śledzenia zdarzeń (.etl) i zarchiwizowany plik dziennika programu Windows PowerShell (.evtx). Można połączyć wiele typów plików w jednym poleceniu.
Ponieważ pliki zawierają ten sam typ obiektu .NET Framework, EventLogRecord, można je filtrować przy użyciu tych samych właściwości. Polecenie wymaga parametru Najstarsze, ponieważ odczytuje go z pliku .etl, ale parametr Najstarszy ma zastosowanie do każdego pliku.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika z zarchiwizowanych plików. Parametr ścieżka używa listy rozdzielanej przecinkami, aby określić każdy katalog plików i nazwę pliku. Parametr Najstarsze służy do wyprowadzania zdarzeń w kolejności, w której są zapisywane, od najstarszych do najnowszych. Obiekty są wysyłane w dół potoku do polecenia cmdlet Where-Object.
Where-Object używa bloku skryptu do znajdowania zdarzeń o identyfikatorze 403. Zmienna $_ reprezentuje bieżący obiekt w potoku, a identyfikator jest właściwością Identyfikator zdarzenia.
Przykład 16. Filtrowanie wyników dziennika zdarzeń
W tym przykładzie przedstawiono różne metody filtrowania i wybierania zdarzeń z dziennika zdarzeń. Wszystkie te polecenia pobierają zdarzenia, które wystąpiły w ciągu ostatnich 24 godzin z dziennika zdarzeń programu Windows PowerShell.
Metody filtrowania są bardziej wydajne niż użycie polecenia cmdlet Where-Object. Filtry są stosowane podczas pobierania obiektów.
Where-Object pobiera wszystkie obiekty, a następnie stosuje filtry do wszystkich obiektów.
# 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) &lt;= 86400000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) &lt;= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath
Przykład 17: Używanie funkcji FilterHashtable do pobierania zdarzeń z dziennika aplikacji
W tym przykładzie użyto parametru FilterHashtable w celu pobrania zdarzeń z dziennika Application. Tabela skrótów używa par klucz/wartość. Aby uzyskać więcej informacji na temat parametru FilterHashtable, zobacz Creating Get-WinEvent queries with FilterHashtable. Aby uzyskać więcej informacji na temat tabel skrótów, zobacz about_Hash_Tables.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Polecenie cmdlet Get-Date używa metody AddDays, aby uzyskać datę, która przypada dwa dni przed bieżącą datą. Obiekt date jest przechowywany w zmiennej $Date.
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika. Parametr FilterHashtable służy do filtrowania danych wyjściowych. Klucz LogName określa wartość dziennika Application. Klucz
Przykład 18: Uzyskiwanie błędów aplikacji przy użyciu funkcji FilterHashtable
W tym przykładzie użyto parametru FilterHashtable, aby znaleźć błędy aplikacji programu Internet Explorer, które wystąpiły w ciągu ostatniego tygodnia.
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
LogName='Application'
ProviderName='Application Error'
Data='iexplore.exe'
StartTime=$StartTime
}
Polecenie cmdlet Get-Date używa metody AddDays, aby uzyskać datę z siedmiu dni przed bieżącą datą. Obiekt date jest przechowywany w zmiennej $StartTime.
Polecenie cmdlet Get-WinEvent pobiera informacje dziennika. Parametr FilterHashtable służy do filtrowania danych wyjściowych. Klucz LogName określa wartość dziennika Application. Klucz ProviderName używa wartości Application Error, czyli zdarzenia Source. Klucz Data używa wartości iexplore.exe klucz StartTime używa wartości przechowywanej w zmiennej $StartTime.
Przykład 19: Filtrowanie błędów aplikacji za pomocą elementu SuppressHashFilter
Podobnie jak w przykładzie 16 powyżej, w tym przykładzie użyto parametru FilterHashtable w celu pobrania zdarzeń z dziennika application. Dodamy jednak klucz SuppressHashFilter, aby odfiltrować zdarzenia na poziomie informacji.
$Date = (Get-Date).AddDays(-2)
$filter = @{
LogName='Application'
StartTime=$Date
SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter
W tym przykładzie Get-WinEvent pobiera wszystkie zdarzenia z dziennika Application przez ostatnie dwa dni, z wyjątkiem tych, które mają poziom 4 (informacje).
Parametry
-ComputerName
Określa nazwę komputera, na który to polecenie cmdlet pobiera zdarzenia z dzienników zdarzeń. Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny (FQDN) komputera. Wartość domyślna to komputer lokalny, localhost. Ten parametr akceptuje tylko jedną nazwę komputera jednocześnie.
Aby uzyskać dzienniki zdarzeń z komputerów zdalnych, skonfiguruj port zapory dla usługi dziennika zdarzeń, aby zezwolić na dostęp zdalny.
To polecenie cmdlet nie polega na komunikacji zdalnej programu PowerShell. Można użyć parametru ComputerName, nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | Local computer |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Cn |
Zestawy parametrów
GetLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
ListLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
ListProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
GetProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
HashQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
XmlQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to bieżący użytkownik.
Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01. Możesz też wprowadzić obiekt PSCredential, taki jak obiekt wygenerowany przez polecenie cmdlet Get-Credential. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o podanie hasła. Jeśli wpiszesz tylko nazwę parametru, zostanie wyświetlony monit o podanie nazwy użytkownika i hasła.
Właściwości parametru
| Typ: | PSCredential |
| Domyślna wartość: | Current user |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-FilterHashtable
Określa zapytanie w formacie tabeli skrótów, aby wybrać zdarzenia z co najmniej jednego dziennika zdarzeń. Zapytanie zawiera tabelę skrótów z co najmniej jedną parą klucz/wartość.
Zapytania tabeli skrótów mają następujące reguły:
- Klucze i wartości są bez uwzględniania wielkości liter.
- Symbole wieloznaczne są prawidłowe tylko w wartościach skojarzonych z LogName i kluczami ProviderName.
- Każdy klucz może być wymieniony tylko raz w każdej tabeli skrótów.
- Wartość Ścieżka pobiera ścieżki do plików dziennika
.etl,.evti.evtx. - Klucze LogName, Pathi ProviderName można używać w tym samym zapytaniu.
- Klucz userID może przyjąć prawidłowy identyfikator zabezpieczeń (SID) lub nazwę konta domeny, która może służyć do konstruowania prawidłowego obiektu System.Security.Principal.NTAc count.
- Wartość Data pobiera dane zdarzenia w polu bez nazwy. Na przykład zdarzenia w klasycznych dziennikach zdarzeń.
-
<named-data>klucz reprezentuje nazwane pole danych zdarzenia.
Jeśli Get-WinEvent nie może zinterpretować pary klucz/wartość, interpretuje klucz jako nazwę z uwzględnieniem wielkości liter dla danych zdarzenia.
Prawidłowe pary Get-WinEventklucz/wartość są następujące:
LogName -
ProviderName (NazwaDostawcy)=
<String[]> ścieżki -
słowa kluczowe=
<Long[]> -
identyfikator=
<Int32[]> na poziomie -
godzina rozpoczęcia=
<DateTime> endtime -
userID=
<SID> -
=
<String[]>danych <named-data>=<String[]>-
SuppressHashFilter=
<Hashtable>
Właściwości parametru
| Typ: | |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
HashQuerySet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-FilterXml
Określa ustrukturyzowane zapytanie XML, które to polecenie cmdlet wybiera zdarzenia z co najmniej jednego dziennika zdarzeń.
Aby wygenerować prawidłowe zapytanie XML, użyj funkcji Create Custom View and Filter Current Log w Podglądzie zdarzeń systemu Windows. Użyj elementów w oknie dialogowym, aby utworzyć zapytanie, a następnie kliknij kartę XML, aby wyświetlić zapytanie w formacie XML. Kod XML można skopiować z karty XML do wartości parametru FilterXml. Aby uzyskać więcej informacji na temat funkcji podglądu zdarzeń, zobacz Pomoc podglądu zdarzeń.
Użyj zapytania XML, aby utworzyć złożone zapytanie zawierające kilka instrukcji XPath. Format XML umożliwia również użycie elementu Suppress XML, który wyklucza zdarzenia z zapytania. Aby uzyskać więcej informacji na temat schematu XML dla zapytań dziennika zdarzeń, zobacz Schemat zapytania zapytań i sekcję Zapytania o zdarzenia XML wyboru zdarzeń.
Można również utworzyć element Suppress przy użyciu parametru FilterHashtable.
Właściwości parametru
| Typ: | XmlDocument |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
XmlQuerySet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-FilterXPath
Określa zapytanie XPath, które to polecenie cmdlet wybiera zdarzenia z co najmniej jednego dziennika.
Aby uzyskać więcej informacji na temat języka XPath, zobacz XPath Reference and the Selection Filters (Filtry wyboru) Event Selection.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
GetLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
GetProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
FileSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Force
Pobiera dzienniki debugowania i analityczne oprócz innych dzienników zdarzeń. Parametr Force jest wymagany do pobrania dziennika debugowania lub analitycznego, gdy wartość parametru Name zawiera symbole wieloznaczne.
Domyślnie polecenie cmdlet Get-WinEvent wyklucza te dzienniki, chyba że określisz pełną nazwę dziennika debugowania lub analitycznego.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
GetLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
ListLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
GetProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
HashQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-ListLog
Określa dzienniki zdarzeń. Wprowadź nazwy dzienników zdarzeń na liście rozdzielanej przecinkami. Symbole wieloznaczne są dozwolone. Aby uzyskać wszystkie dzienniki, użyj symbolu wieloznakowego gwiazdki (*).
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
ListLogSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-ListProvider
Określa dostawców dziennika zdarzeń pobieranych przez to polecenie cmdlet. Dostawca dziennika zdarzeń to program lub usługa, która zapisuje zdarzenia w dzienniku zdarzeń.
Wprowadź nazwy dostawców na liście rozdzielanej przecinkami. Symbole wieloznaczne są dozwolone. Aby uzyskać dostawców wszystkich dzienników zdarzeń na komputerze, użyj gwiazdki (*) symbol wieloznaczny.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
ListProviderSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-LogName
Określa dzienniki zdarzeń, z których to polecenie cmdlet pobiera zdarzenia. Wprowadź nazwy dzienników zdarzeń na liście rozdzielanej przecinkami. Symbole wieloznaczne są dozwolone. Możesz również przekazać nazwy dzienników potoku do polecenia cmdlet Get-WinEvent.
Uwaga / Notatka
Program PowerShell nie ogranicza ilości dzienników, których można zażądać. Jednak polecenie cmdlet Get-WinEvent wysyła zapytanie do interfejsu API systemu Windows, który ma limit 256. Może to utrudnić filtrowanie wszystkich dzienników jednocześnie. Można to obejść, używając pętli foreach w celu iterowania poszczególnych dzienników w następujący sposób: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.LogName }
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
GetLogSet
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-MaxEvents
Określa maksymalną liczbę zwracanych zdarzeń. Wprowadź liczbę całkowitą, taką jak 100. Wartość domyślna to zwracanie wszystkich zdarzeń w dziennikach lub plikach.
Właściwości parametru
| Typ: | Int64 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
GetLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
GetProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
FileSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
HashQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
XmlQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Oldest
Wskaż, że to polecenie cmdlet pobiera zdarzenia w kolejności najstarszej pierwszej. Domyślnie zdarzenia są zwracane w najnowszej kolejności.
Ten parametr jest wymagany do pobierania zdarzeń z plików .etl i .evt oraz z dzienników debugowania i analizy. W tych plikach zdarzenia są rejestrowane w kolejności najstarszej pierwszej, a zdarzenia mogą być zwracane tylko w kolejności najstarszej pierwszej.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
GetLogSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
GetProviderSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
FileSet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
HashQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
XmlQuerySet
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Path
Określa ścieżkę do plików dziennika zdarzeń, z których to polecenie cmdlet pobiera zdarzenia. Wprowadź ścieżki do plików dziennika na liście rozdzielanej przecinkami lub użyj symboli wieloznacznych, aby utworzyć wzorce ścieżek plików.
Get-WinEvent obsługuje pliki z rozszerzeniami nazw plików .evt, .evtxi .etl. Zdarzenia z różnych plików i typów plików można uwzględnić w tym samym poleceniu.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
| Aliasy: | PSPath |
Zestawy parametrów
FileSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-ProviderName
Określa jako tablicę ciągów dostawców dziennika zdarzeń, z których to polecenie cmdlet pobiera zdarzenia. Wprowadź nazwy dostawców na liście rozdzielanej przecinkami lub użyj symboli wieloznacznych, aby utworzyć wzorce nazw dostawcy.
Dostawca dziennika zdarzeń to program lub usługa, która zapisuje zdarzenia w dzienniku zdarzeń. Nie jest to dostawca programu PowerShell.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
Zestawy parametrów
GetProviderSet
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
String
Do tego polecenia cmdlet możesz przekazać LogName (ciąg).
XmlDocument
Do tego polecenia cmdlet można przekazać zapytanie FilterXML.
Hashtable
Do tego polecenia cmdlet można przekazać zapytanie FilterHashtable.
Dane wyjściowe
EventLogConfiguration
W przypadku parametru listlog to polecenie cmdlet zwraca obiekty EventLogConfiguration.
EventLogRecord
Domyślnie to polecenie cmdlet zwraca obiekty EventLogRecord.
ProviderMetadata
Za pomocą parametru ListProvider to polecenie cmdlet zwraca obiekty ProviderMetadata.
Uwagi
Get-WinEvent został zaprojektowany tak, aby zastąpić polecenie cmdlet Get-EventLog na komputerach z systemem Windows Vista i nowszymi wersjami systemu Windows.
Get-EventLog pobiera zdarzenia tylko w klasycznych dziennikach zdarzeń.
Get-EventLog jest zachowywany w celu zapewnienia zgodności z poprzednimi wersjami.
Polecenia cmdlet Get-WinEvent i Get-EventLog nie są obsługiwane w środowisku przed instalacją systemu Windows (Windows PE).