Get-EventLog
Získá události v protokolu událostí nebo seznam protokolů událostí v místním počítači nebo vzdálených počítačích.
Syntaxe
Get-EventLog
[-LogName] <String>
[-ComputerName <String[]>]
[-Newest <Int32>]
[-After <DateTime>]
[-Before <DateTime>]
[-UserName <String[]>]
[[-InstanceId] <Int64[]>]
[-Index <Int32[]>]
[-EntryType <String[]>]
[-Source <String[]>]
[-Message <String>]
[-AsBaseObject]
[<CommonParameters>]
Get-EventLog
[-ComputerName <String[]>]
[-List]
[-AsString]
[<CommonParameters>]
Description
Rutina Get-EventLog
získává události a protokoly událostí z místních a vzdálených počítačů. Ve výchozím nastavení Get-EventLog
získává protokoly z místního počítače. Pokud chcete získat protokoly ze vzdálených počítačů, použijte parametr ComputerName .
K hledání událostí můžete použít Get-EventLog
parametry a hodnoty vlastností. Rutina získá události, které odpovídají zadaným hodnotám vlastnosti.
Rutiny PowerShellu EventLog
, které obsahují podstatné jméno, fungují jenom v klasických protokolech událostí Windows, jako jsou aplikace, systém nebo zabezpečení. Chcete-li získat protokoly, které používají technologii protokolu událostí systému Windows v systému Windows Vista a novějších verzích systému Windows, použijte Get-WinEvent
.
Poznámka:
Get-EventLog
používá rozhraní API Win32, které je zastaralé. Výsledky nemusí být přesné. Místo toho použijte rutinu Get-WinEvent
.
Příklady
Příklad 1: Získání protokolů událostí na místním počítači
Tento příklad zobrazí seznam protokolů událostí, které jsou k dispozici v místním počítači. Názvy ve sloupci Log se používají s parametrem LogName k určení, který protokol se hledá pro události.
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
Rutina Get-EventLog
používá parametr List k zobrazení dostupných protokolů.
Příklad 2: Získání nedávných položek z protokolu událostí v místním počítači
Tento příklad získá nedávné položky z protokolu událostí systému.
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...
Rutina Get-EventLog
používá parametr LogName k určení protokolu událostí systému. Nejnovější parametr vrátí pět nejnovějších událostí.
Příklad 3: Vyhledání všech zdrojů pro určitý počet položek v protokolu událostí
Tento příklad ukazuje, jak najít všechny zdroje, které jsou zahrnuty do 1000 nejnovějších položek v protokolu událostí systému.
$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
Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Nejnovější parametr vybere 1000 nejnovějších událostí. Objekty událostí jsou uloženy v $Events
proměnné. Objekty $Events
se odesílají do rutiny Group-Object
.
Group-Object
pomocí parametru Property seskupí objekty podle zdroje a spočítá počet objektů pro každý zdroj. Parametr NoElement odebere členy skupiny z výstupu.
Rutina Sort-Object
pomocí parametru Property seřadí podle počtu jednotlivých zdrojových názvů.
Sestupný parametr seřadí seznam v pořadí podle počtu od nejvyššího po nejnižší.
Příklad 4: Získání chybových událostí z konkrétního protokolu událostí
Tento příklad získá chybové události z systémového protokolu událostí.
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...
Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Parametr EntryType filtruje události tak, aby zobrazovaly pouze chybové události.
Příklad 5: Získání událostí z protokolu událostí s hodnotou InstanceId a Source
Tento příklad získá události z systémového protokolu pro konkrétní ID instance a zdroj.
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...
Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Parametr InstanceID vybere události se zadaným ID instance. Parametr Source určuje vlastnost události.
Příklad 6: Získání událostí z více počítačů
Tento příkaz získá události z protokolu událostí systému na třech počítačích: Server01, Server02 a Server03.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Parametr ComputerName používá k výpisu počítačů, ze kterých chcete získat protokoly událostí, řetězec oddělený čárkami.
Příklad 7: Získání všech událostí, které obsahují určité slovo ve zprávě
Tento příkaz získá všechny události v protokolu událostí systému, které obsahují určité slovo ve zprávě události. Je možné, že hodnota zadaného parametru zprávy je součástí obsahu zprávy, ale nezobrazuje se v konzole PowerShellu.
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'...
Rutina Get-EventLog
používá parametr LogName k určení protokolu událostí systému. Parametr Message určuje slovo, které se má vyhledat v poli zprávy každé události.
Příklad 8: Zobrazení hodnot vlastností události
Tento příklad ukazuje, jak zobrazit všechny vlastnosti a hodnoty události.
$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 :
Rutina Get-EventLog
používá parametr LogName k určení protokolu událostí systému. Nejnovější parametr vybere poslední objekt události. Objekt je uložen v $A
proměnné. Objekt v $A
proměnné se odešle do rutiny Select-Object
.
Select-Object
používá parametr Property s hvězdičkou (*
) k výběru všech vlastností objektu.
Příklad 9: Získání událostí z protokolu událostí pomocí zdroje a ID události
Tento příklad získá události pro zadaný zdroj a ID události.
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.
Rutina Get-EventLog
používá parametr LogName k určení protokolu událostí aplikace. Parametr Source určuje název aplikace, Outlook. Objekty se odesílají do rutiny Where-Object
. Pro každý objekt v kanálu Where-Object
používá rutina proměnnou $_.EventID
k porovnání vlastnosti ID události se zadanou hodnotou. Objekty se odesílají do rutiny Select-Object
. Select-Object
pomocí parametru Property vybere vlastnosti, které se mají zobrazit v konzole PowerShellu.
Příklad 10: Získání událostí a seskupení podle vlastnosti
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
Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Parametr UserName obsahuje zástupný znak hvězdičky (*
) pro zadání části uživatelského jména. Objekty událostí se do rutiny odesílají do kanálu Group-Object
. Group-Object
pomocí parametru Property určuje, že vlastnost UserName se používá k seskupení objektů a počítá počet objektů pro každé uživatelské jméno. Parametr NoElement odebere členy skupiny z výstupu. Objekty se odesílají do rutiny Select-Object
.
Select-Object
pomocí parametru Property vybere vlastnosti, které se mají zobrazit v konzole PowerShellu.
Příklad 11: Získání událostí, ke kterým došlo během určitého data a časového rozsahu
Tento příklad získá chybové události z systémového protokolu událostí pro zadané datum a časový rozsah. Parametry Before a After nastavují datum a časový rozsah, ale jsou vyloučeny z výstupu.
$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...
Rutina Get-Date
používá parametr Date k určení data a času. Objekty DateTime jsou uloženy v $Begin
proměnných $End
. Rutina Get-EventLog
používá k zadání systémového protokolu parametr LogName . Parametr EntryType určuje typ události Error. Rozsah data a času je nastaven parametrem After a $Begin
proměnnou a parametrem Before a $End
proměnnou.
Parametry
-After
Získá události, ke kterým došlo po zadaném datu a čase. Datum a čas parametru After jsou vyloučeny z výstupu. Zadejte objekt DateTime, například hodnotu vrácenou rutinouGet-Date
.
Typ: | DateTime |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-AsBaseObject
Označuje, že tato rutina pro každou událost vrátí standardní objekt System.Diagnostics.EventLogEntry . Bez tohoto parametru Get-EventLog
vrátí rozšířený objekt PSObject s dalšími vlastnostmi EventLogName, Source a InstanceId .
Pokud chcete zobrazit účinek tohoto parametru, předáte události do Get-Member
rutiny a zkontrolujte hodnotu TypeName ve výsledku.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-AsString
Označuje, že tato rutina vrací výstup jako řetězce místo objektů.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Before
Získá události, ke kterým došlo před zadaným datem a časem. Datum a čas před parametrem jsou vyloučeny z výstupu. Zadejte objekt DateTime, například hodnotu vrácenou rutinouGet-Date
.
Typ: | DateTime |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ComputerName
Tento parametr určuje název netBIOS vzdáleného počítače, IP adresu (Internet Protocol) nebo plně kvalifikovaný název domény (FQDN).
Pokud není zadaný parametr ComputerName, Get-EventLog
nastaví se výchozí hodnota pro místní počítač. Parametr také přijímá tečku (.
) k určení místního počítače.
Parametr ComputerName nespoléhá na vzdálené komunikace Windows PowerShellu. S parametrem ComputerName můžete použít Get-EventLog
i v případě, že váš počítač není nakonfigurovaný tak, aby spouštět vzdálené příkazy.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-EntryType
Určuje jako pole řetězců typ položky událostí, které tato rutina získá.
Tento parametr přijímá tyto hodnoty:
- Chyba
- Informační
- FailureAudit
- SuccessAudit
- Upozorňující
Typ: | String[] |
Aliasy: | ET |
Přípustné hodnoty: | Error, Information, FailureAudit, SuccessAudit, Warning |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Index
Určuje hodnoty indexu, které se mají získat z protokolu událostí. Parametr přijímá řetězec hodnot oddělený čárkami.
Typ: | Int32[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InstanceId
Určuje ID instancí, která se mají získat z protokolu událostí. Parametr přijímá řetězec hodnot oddělený čárkami.
Typ: | Int64[] |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-List
Zobrazí seznam protokolů událostí v počítači.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-LogName
Určuje název jednoho protokolu událostí. K vyhledání názvů protokolů použijte Get-EventLog -List
. Jsou povoleny zástupné znaky. Tento parametr je povinný.
Typ: | String |
Aliasy: | LN |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Message
Určuje řetězec ve zprávě události. Tento parametr můžete použít k vyhledání zpráv obsahujících určitá slova nebo fráze. Jsou povoleny zástupné cardy.
Typ: | String |
Aliasy: | MSG |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Newest
Začíná nejnovějšími událostmi a získá zadaný počet událostí. Je vyžadován počet událostí, například -Newest 100
. Určuje maximální počet vrácených událostí.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Source
Určuje jako pole řetězců zdroje, které byly zapsány do protokolu, který tato rutina získá. Jsou povoleny zástupné cardy.
Typ: | String[] |
Aliasy: | ABO |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-UserName
Určuje jako pole řetězců uživatelská jména přidružená k událostem. Zadejte názvy nebo vzory názvů, například User01
, User*
nebo Domain01\User*
. Jsou povoleny zástupné cardy.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
Vstupy
None
Vstup do objektu .< a1/> nelze převést na Get-EventLog
.
Výstupy
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Pokud je zadán parametr LogName, výstup je kolekce System.Diagnostics.EventLogEntry objekty.
Pokud je zadán pouze parametr List , výstup je kolekce Objektů System.Diagnostics.EventLog .
Pokud jsou zadány parametry List i AsString , výstup je kolekce System.String objekty.
Poznámky
Rutiny Get-EventLog
a Get-WinEvent
nejsou podporované v prostředí Windows Preinstallation Environment (Windows PE).