Sdílet prostřednictvím


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. používá parametr vlastnost k seskupení objektů podle zdroje a spočítá počet objektů pro každý zdroj. Parametr NoElement odebere členy skupiny z výstupu. Rutina používá parametr vlastnosti k seřazení podle počtu jednotlivých názvů zdrojů. Parametr Sestupně 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 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. používá parametr vlastnosti k výběru vlastností, 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 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. používá parametr vlastnosti k výběru vlastností, 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 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-EventLognelze 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 List i AsString, výstup je kolekce objektů System.String.

Poznámky

Rutiny Get-EventLog a Get-WinEvent nejsou podporovány v prostředí Windows Preinstallation Environment (Windows PE).