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.

Syntax

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-Objectpouží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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsString

Označuje, že tato rutina vrací výstup jako řetězce místo objektů.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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í
Type:String[]
Aliases:ET
Accepted values:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int64[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Zobrazí seznam protokolů událostí v počítači.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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ý.

Type:String
Aliases:LN
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:MSG
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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í.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:ABO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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).