Get-EventLog
Pobiera zdarzenia w dzienniku zdarzeń lub listę dzienników zdarzeń na komputerze lokalnym lub komputerach zdalnych.
Składnia
Get-EventLog
[-LogName] <string>
[[-InstanceId] <long[]>]
[-ComputerName <string[]>]
[-Newest <int>]
[-After <datetime>]
[-Before <datetime>]
[-UserName <string[]>]
[-Index <int[]>]
[-EntryType <String[]>]
[-Source <String[]>]
[-Message <String>]
[-AsBaseObject]
[<CommonParameters>]
Get-EventLog
[-ComputerName <String[]>]
[-List]
[-AsString]
[<CommonParameters>]
Opis
Polecenie cmdlet Get-EventLog
pobiera zdarzenia i dzienniki zdarzeń z komputerów lokalnych i zdalnych. Domyślnie Get-EventLog
pobiera dzienniki z komputera lokalnego. Aby pobrać dzienniki z komputerów zdalnych, użyj parametru ComputerName.
Do wyszukiwania zdarzeń można użyć parametrów Get-EventLog
i wartości właściwości. Polecenie cmdlet pobiera zdarzenia zgodne z określonymi wartościami właściwości.
Polecenia cmdlet programu PowerShell zawierające EventLog
un działają tylko w klasycznych dziennikach zdarzeń systemu Windows, takich jak Aplikacja, System lub Zabezpieczenia. Aby uzyskać dzienniki korzystające z technologii dziennika zdarzeń systemu Windows w systemie Windows Vista i nowszych wersjach systemu Windows, użyj Get-WinEvent
.
Przykłady
Przykład 1. Pobieranie dzienników zdarzeń na komputerze lokalnym
W tym przykładzie zostanie wyświetlona lista dzienników zdarzeń, które są dostępne na komputerze lokalnym. Nazwy w kolumnie Dziennik są używane z parametrem LogName w celu określenia, który dziennik jest wyszukiwany pod kątem zdarzeń.
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
Polecenie cmdlet
Przykład 2. Pobieranie ostatnich wpisów z dziennika zdarzeń na komputerze lokalnym
Ten przykład pobiera ostatnie wpisy z dziennika zdarzeń systemu.
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...
Polecenie cmdlet
Przykład 3. Znajdowanie wszystkich źródeł dla określonej liczby wpisów w dzienniku zdarzeń
W tym przykładzie pokazano, jak znaleźć wszystkie źródła uwzględnione w 1000 najnowszych wpisach w dzienniku zdarzeń systemu.
$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
Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr Najnowszy wybiera 1000 najnowszych zdarzeń. Obiekty zdarzeń są przechowywane w zmiennej $Events
. Obiekty $Events
są wysyłane w dół potoku do polecenia cmdlet Group-Object
.
Przykład 4. Pobieranie zdarzeń błędu z określonego dziennika zdarzeń
W tym przykładzie są wyświetlane zdarzenia błędów z dziennika zdarzeń systemu.
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...
Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr EntryType filtruje zdarzenia w celu wyświetlenia tylko zdarzeń błędu.
Przykład 5. Pobieranie zdarzeń z dziennika zdarzeń z wartością InstanceId i Source
Ten przykład pobiera zdarzenia z dziennika systemowego dla określonego identyfikatora wystąpienia i źródła.
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...
Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr InstanceID wybiera zdarzenia o określonym identyfikatorze wystąpienia. Parametr Source określa właściwość zdarzenia.
Przykład 6. Pobieranie zdarzeń z wielu komputerów
To polecenie pobiera zdarzenia z dziennika zdarzeń systemu na trzech komputerach: Server01, Server02 i Server03.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr ComputerName używa ciągu rozdzielanego przecinkami, aby wyświetlić listę komputerów, z których chcesz uzyskać dzienniki zdarzeń.
Przykład 7. Pobieranie wszystkich zdarzeń, które zawierają określone słowo w komunikacie
To polecenie pobiera wszystkie zdarzenia w dzienniku zdarzeń systemu, które zawierają określone słowo w komunikacie zdarzenia. Możliwe, że określona wartość parametru Message jest uwzględniona w zawartości komunikatu, ale nie jest wyświetlana w konsoli programu PowerShell.
Get-EventLog -LogName System -Message *description*
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13821 Jan 17 19:17 Error DCOM 10016 The description for Event ID '10016'...
13820 Jan 17 19:16 Error DCOM 10016 The description for Event ID '10016'...
13819 Jan 17 19:08 Error DCOM 10016 The description for Event ID '10016'...
Polecenie cmdlet
Przykład 8. Wyświetlanie wartości właściwości zdarzenia
W tym przykładzie pokazano, jak wyświetlić wszystkie właściwości i wartości zdarzenia.
$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 :
Polecenie cmdlet $A
. Obiekt w zmiennej $A
jest wysyłany w dół potoku do polecenia cmdlet Select-Object
.
Przykład 9. Pobieranie zdarzeń z dziennika zdarzeń przy użyciu źródła i identyfikatora zdarzenia
Ten przykład pobiera zdarzenia dla określonego źródła i identyfikatora zdarzenia.
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.
Polecenie cmdlet Where-Object
. Dla każdego obiektu w potoku polecenie cmdlet Where-Object
używa zmiennej $_.EventID
do porównania właściwości Identyfikator zdarzenia z określoną wartością. Obiekty są wysyłane w dół potoku do polecenia cmdlet Select-Object
.
Przykład 10: Pobieranie zdarzeń i grupowanie według właściwości
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
Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr UserName zawiera symbol wieloznaczny gwiazdki (*
), aby określić część nazwy użytkownika. Obiekty zdarzeń są wysyłane w dół potoku do polecenia cmdlet Group-Object
. Select-Object
.
Przykład 11. Pobieranie zdarzeń, które wystąpiły w określonym zakresie dat i godzin
Ten przykład pobiera zdarzenia błędów z dziennika zdarzeń systemu dla określonego zakresu dat i godzin. Parametry Przed i Po ustawiają zakres daty i godziny, ale są wykluczone z danych wyjściowych.
$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...
Polecenie cmdlet $Begin
i $End
. Polecenie cmdlet Get-EventLog
używa parametru LogName w celu określenia dziennika systemowego. Parametr EntryType określa typ zdarzenia Błąd. Zakres daty i godziny jest ustawiany przez parametr After i zmienną $Begin
oraz zmienną Przed i zmienną $End
.
Parametry
-After
Pobiera zdarzenia, które wystąpiły po określonej dacie i godzinie. Data i godzina parametru po są wykluczone z danych wyjściowych. Wprowadź obiekt DateTime, taki jak wartość zwrócona przez polecenie cmdlet Get-Date
.
Typ: | DateTime |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AsBaseObject
Wskazuje, że to polecenie cmdlet zwraca standardowy obiekt System.Diagnostics.EventLogEntry dla każdego zdarzenia. Bez tego parametru
Aby zobaczyć efekt tego parametru, należy przekazać zdarzenia do polecenia cmdlet Get-Member
i zbadać wartość TypeName w wyniku.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AsString
Wskazuje, że to polecenie cmdlet zwraca dane wyjściowe jako ciągi, a nie obiekty.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Before
Pobiera zdarzenia, które wystąpiły przed określoną datą i godziną. Data i godzina parametru przed są wykluczone z danych wyjściowych. Wprowadź obiekt DateTime, taki jak wartość zwrócona przez polecenie cmdlet Get-Date
.
Typ: | DateTime |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Ten parametr określa nazwę NetBIOS komputera zdalnego, adres IP (Internet Protocol) lub w pełni kwalifikowaną nazwę domeny (FQDN).
Jeśli nie określono parametru ComputerName, Get-EventLog
wartość domyślna komputera lokalnego. Parametr akceptuje również kropkę (.
) w celu określenia komputera lokalnego.
Parametr ComputerName nie polega na komunikacji zdalnej programu Windows PowerShell. Można użyć Get-EventLog
z parametrem ComputerName, nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-EntryType
Określa jako tablicę ciągów typ wpisu zdarzeń pobieranych przez to polecenie cmdlet.
Dopuszczalne wartości tego parametru to:
- Błąd
- Informacja
- FailureAudit
- SuccessAudit
- Ostrzeżenie
Typ: | String[] |
Aliasy: | ET |
Dopuszczalne wartości: | Error, Information, FailureAudit, SuccessAudit, Warning |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Index
Określa wartości indeksu, które mają być uzyskiwane z dziennika zdarzeń. Parametr akceptuje rozdzielony przecinkami ciąg wartości.
Typ: | int[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InstanceId
Określa identyfikatory wystąpień, które mają być uzyskiwane z dziennika zdarzeń. Parametr akceptuje rozdzielony przecinkami ciąg wartości.
Typ: | long[] |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-List
Wyświetla listę dzienników zdarzeń na komputerze.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-LogName
Określa nazwę jednego dziennika zdarzeń. Aby znaleźć nazwy dzienników, użyj Get-EventLog -List
. Dozwolone są symbole wieloznaczne. Ten parametr jest wymagany.
Typ: | String |
Aliasy: | LN |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Message
Określa ciąg w komunikacie zdarzenia. Tego parametru można użyć do wyszukiwania komunikatów zawierających określone wyrazy lub frazy. Dozwolone są symbole wieloznaczne.
Typ: | String |
Aliasy: | MSG |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Newest
Rozpoczyna się od najnowszych zdarzeń i pobiera określoną liczbę zdarzeń. Wymagana jest liczba zdarzeń, na przykład -Newest 100
. Określa maksymalną liczbę zwracanych zdarzeń.
Typ: | Int |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Source
Określa jako tablicę ciągów źródła, które zostały zapisane w dzienniku pobieranym przez to polecenie cmdlet. Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Aliasy: | ABO |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-UserName
Określa jako tablicę ciągów nazwy użytkowników skojarzone ze zdarzeniami. Wprowadź nazwy lub wzorce nazw, takie jak User01
, User*
lub Domain01\User*
. Dozwolone są symbole wieloznaczne.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do Get-EventLog
.
Dane wyjściowe
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Jeśli określono parametr LogName, dane wyjściowe są kolekcją obiektów System.Diagnostics.EventLogEntry.
Jeśli określono tylko parametr listy
Jeśli określono parametry list
Uwagi
Polecenia cmdlet Get-EventLog
i Get-WinEvent
nie są obsługiwane w środowisku preinstalacji systemu Windows (Windows PE).