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>
[[-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>]
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 vyhledání událostí můžete použít parametry Get-EventLog
a hodnoty vlastností. Rutina získá události, které odpovídají zadaným hodnotám vlastnosti.
Rutiny PowerShellu, které obsahují EventLog
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
.
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 Protokol 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á k zobrazení dostupných protokolů parametr List.
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á k určení protokolu událostí systému parametr LogName. Parametr Nejnovější 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 určení systémového protokolu parametr LogName. Parametr Nejnovější vybere 1000 nejnovějších událostí. Objekty událostí jsou uloženy v proměnné $Events
. Objekty $Events
se odesílají do Group-Object
rutiny.
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 určení 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 určení 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 určení systémového protokolu parametr LogName. Parametr ComputerName používá řetězec oddělený čárkami k výpisu počítačů, ze kterých chcete získat protokoly událostí.
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 zadaná hodnota Message parametru je zahrnutá do 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á k určení protokolu událostí systému parametr LogName. 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á k určení protokolu událostí systému parametr LogName. Parametr Nejnovější vybere poslední objekt události. Objekt je uložen v proměnné $A
. Objekt v proměnné $A
se odešle do kanálu do rutiny Select-Object
.
Select-Object
pomocí parametru Vlastnost hvězdičkou (*
) vybere všechny vlastnosti 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á k určení protokolu událostí aplikace parametr LogName. Parametr Source určuje název aplikace Outlook. Objekty se odesílají do Where-Object
rutiny. Pro každý objekt v kanálu používá rutina Where-Object
proměnnou $_.EventID
k porovnání vlastnosti ID události se zadanou hodnotou. Objekty se odesílají do Select-Object
rutiny.
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 určení systémového protokolu parametr LogName. Parametr UserName obsahuje zástupný znak hvězdičky (*
), který určuje část uživatelského jména. Objekty událostí se odesílají do kanálu do rutiny Group-Object
.
Group-Object
pomocí parametru Vlastnost určuje, že vlastnost UserName se používá k seskupení objektů a počítání objektů pro každé uživatelské jméno. Parametr NoElement odebere členy skupiny z výstupu. Objekty se odesílají do Select-Object
rutiny.
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 Před a Po nastaví rozsah data a času, ale jsou z výstupu vyloučeny.
$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
a $End
proměnných. Rutina Get-EventLog
používá k určení systémového protokolu parametr LogName. Parametr EntryType určuje typ události Error. Rozsah data a času je nastaven parametrem After a proměnnou $Begin
a Před parametrem a proměnnou $End
.
Parametry
-After
Získá události, ke kterým došlo po zadaném datu a čase. Datum a čas parametru Po jsou z výstupu vyloučeny. Zadejte objekt DateTime, například hodnotu vrácenou rutinou Get-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 vrací standardní System.Diagnostics.EventLogEntry objekt pro každou událost. Bez tohoto parametru Get-EventLog
vrátí rozšířený objekt PSObject s dalšími vlastnostmi EventLogName, Sourcea InstanceId.
Pokud chcete zobrazit účinek tohoto parametru, předáte události do rutiny Get-Member
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. Z výstupu jsou vyloučeny Před datem a časem parametru. Zadejte objekt DateTime, například hodnotu vrácenou rutinou Get-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
výchozí nastavení místního počítače. 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.
Get-EventLog
můžete použít s parametrem ComputerName i v případě, že váš počítač není nakonfigurovaný ke spouštění vzdálených příkazů.
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á.
Přijatelné hodnoty pro tento parametr jsou:
- Chyba
- Informace
- FailureAudit
- SuccessAudit
- Varování
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: | int[] |
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: | long[] |
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: | Int |
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 Get-EventLog
nelze převést .
Výstupy
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Pokud je zadaný parametr LogName, výstup je kolekce objektů System.Diagnostics.EventLogEnt ry.
Pokud je zadán pouze parametr Seznam, výstup je kolekce System.Diagnostics.EventLog objekty.
Pokud jsou zadány parametry
Poznámky
Rutiny Get-EventLog
a Get-WinEvent
nejsou podporovány v prostředí Windows Preinstallation Environment (Windows PE).