Поделиться через


Get-EventLog

Возвращает события в журнале событий или список журналов событий на локальном или удаленных компьютерах.

Синтаксис

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>]

Описание

Командлет Get-EventLog получает события и журналы событий с локальных и удаленных компьютеров. По умолчанию Get-EventLog получает журналы с локального компьютера. Чтобы получить журналы с удаленных компьютеров, используйте параметр ComputerName .

Для поиска событий можно использовать Get-EventLog параметры и значения свойств. Командлет получает события, соответствующие указанным значениям свойств.

Командлеты PowerShell, содержащие EventLog существительное, работают только с классическими журналами событий Windows, такими как Application, System или Security. Чтобы получить журналы, использующие технологию журнала событий Windows в Windows Vista и более поздних версиях Windows, используйте .Get-WinEvent

Примеры

Пример 1. Получение журналов событий на локальном компьютере

В этом примере отображается список журналов событий, доступных на локальном компьютере. Имена в столбце Журнал используются с параметром LogName , чтобы указать, в каком журнале выполняется поиск событий.

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

Командлет Get-EventLog использует параметр List для отображения доступных журналов.

Пример 2. Получение последних записей из журнала событий на локальном компьютере

В этом примере возвращаются последние записи из системного журнала событий.

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...

Командлет Get-EventLog использует параметр LogName для указания системного журнала событий. Параметр Newest возвращает пять последних событий.

Пример 3. Поиск всех источников для определенного количества записей в журнале событий

В этом примере показано, как найти все источники, включенные в 1000 последних записей в журнале системных событий.

$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

Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр Newest выбирает 1000 последних событий. Объекты событий хранятся в переменной $Events . Объекты $Events отправляются по конвейеру в Group-Object командлет . Group-Object использует параметр Property для группировки объектов по источнику и подсчитывает количество объектов для каждого источника. Параметр NoElement удаляет членов группы из выходных данных. Командлет Sort-Object использует параметр Property для сортировки по количеству каждого имени источника. Параметр Убывание сортирует список по упорядочению по количеству от самого высокого к нижнему.

Пример 4. Получение событий ошибок из определенного журнала событий

Этот пример получает события ошибок из журнала системных событий.

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...

Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр EntryType фильтрует события, отображая только события ошибки.

Пример 5. Получение событий из журнала событий со значениями InstanceId и Source

Этот пример получает события из системного журнала для определенных InstanceId и Source.

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...

Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр InstanceID выбирает события с указанным идентификатором экземпляра. Параметр Source указывает свойство события.

Пример 6. Получение событий с нескольких компьютеров

Эта команда получает события из журнала системных событий на трех компьютерах: Server01, Server02 и Server03.

Get-EventLog -LogName System -ComputerName Server01, Server02, Server03

Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр ComputerName использует строку, разделенную запятыми, для вывода списка компьютеров, с которых требуется получить журналы событий.

Пример 7. Получение всех событий, которые содержат определенное слово в сообщении

Эта команда получает все события в журнале системных событий, содержащие определенное слово в сообщении события. Возможно, значение указанного параметра Message включено в содержимое сообщения, но не отображается в консоли 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'...

Командлет Get-EventLog использует параметр LogName для указания системного журнала событий. Параметр Message указывает слово для поиска в поле сообщения каждого события.

Пример 8. Отображение значений свойств события

В этом примере показано, как отобразить все свойства и значения события.

$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          :

Командлет Get-EventLog использует параметр LogName для указания системного журнала событий. Параметр Newest выбирает последний объект события. Объект хранится в переменной $A . Объект в переменной $A отправляется по конвейеру командлету Select-Object . Select-Object использует параметр Property со звездочкой (*) для выбора всех свойств объекта.

Пример 9. Получение событий из журнала событий с помощью источника и идентификатора события

В этом примере возвращаются события для указанного источника и идентификатора события.

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.

Командлет Get-EventLog использует параметр LogName для указания журнала событий приложения. Параметр Source указывает имя приложения Outlook. Объекты отправляются по конвейеру в Where-Object командлет . Для каждого объекта в конвейере Where-Object командлет использует переменную $_.EventID для сравнения свойства Event ID с указанным значением. Объекты отправляются по конвейеру в Select-Object командлет . Select-Object использует параметр Property для выбора свойств, отображаемых в консоли PowerShell.

Пример 10. Получение событий и группировка по свойству

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

Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр UserName содержит подстановочный знак звездочки (*) для указания части имени пользователя. Объекты событий отправляются по конвейеру Group-Object в командлет . Group-Object использует параметр Property , чтобы указать, что свойство UserName используется для группировки объектов и подсчета количества объектов для каждого имени пользователя. Параметр NoElement удаляет членов группы из выходных данных. Объекты отправляются по конвейеру в Select-Object командлет . Select-Object использует параметр Property для выбора свойств, отображаемых в консоли PowerShell.

Пример 11. Получение событий, произошедших в течение определенного диапазона даты и времени

Этот пример получает события ошибок из журнала системных событий за указанный диапазон даты и времени. Параметры Before и After задают диапазон даты и времени, но исключаются из выходных данных.

$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...

Командлет Get-Date использует параметр Date для указания даты и времени. Объекты DateTime хранятся в $Begin переменных и $End . Командлет Get-EventLog использует параметр LogName для указания системного журнала. Параметр EntryType указывает тип события Error. Диапазон даты и времени задается параметром After и $Begin переменной , а также параметром Before и $End переменной .

Параметры

-After

Возвращает события, произошедшие после указанной даты и времени. Дата и время параметра After исключаются из выходных данных. Введите объект DateTime , например значение, возвращаемое командлетом Get-Date .

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

-AsBaseObject

Указывает, что этот командлет возвращает стандартный объект System.Diagnostics.EventLogEntry для каждого события. Без этого параметра Get-EventLog возвращает расширенный объект PSObject с дополнительными свойствами EventLogName, Source и InstanceId .

Чтобы увидеть эффект этого параметра, передайте события в Get-Member командлет и проверьте значение TypeName в результате.

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

-AsString

Указывает, что этот командлет возвращает выходные данные в виде строк, а не объектов .

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

-Before

Возвращает события, произошедшие до указанной даты и времени. Дата и время параметра Before исключаются из выходных данных. Введите объект DateTime , например значение, возвращаемое командлетом Get-Date .

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

-ComputerName

Этот параметр указывает netBIOS-имя удаленного компьютера, IP-адрес или полное доменное имя (FQDN).

Если параметр ComputerName не указан, Get-EventLog по умолчанию используется локальный компьютер. Параметр также принимает точку (.) для указания локального компьютера.

Параметр ComputerName не зависит от Windows PowerShell удаленного взаимодействия. С параметром ComputerName можно использоватьGet-EventLog, даже если компьютер не настроен для выполнения удаленных команд.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EntryType

Задает в виде массива строк тип записи событий, которые получает этот командлет.

Допустимые значения для этого параметра:

  • Ошибка
  • Сведения
  • FailureAudit
  • SuccessAudit
  • Предупреждение
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

Задает значения индекса, которые необходимо получить из журнала событий. Параметр принимает строку значений, разделенную запятыми.

Type:int[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

Указывает идентификаторы экземпляров, которые необходимо получить из журнала событий. Параметр принимает строку значений, разделенную запятыми.

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

-List

Отображает список журналов событий на компьютере.

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

-LogName

Указывает имя одного журнала событий. Чтобы найти имена журналов, используйте Get-EventLog -List. Можно использовать подстановочные знаки. Это обязательный параметр.

Type:String
Aliases:LN
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Message

Указывает строку в сообщении о событии. Этот параметр можно использовать для поиска сообщений, содержащих определенные слова или фразы. Разрешено использовать подстановочные знаки.

Type:String
Aliases:MSG
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Newest

Начинается с новейших событий и получает указанное количество событий. Необходимое количество событий, например -Newest 100. Указывает максимальное количество возвращаемых событий.

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

-Source

Указывает в качестве массива строк источники, записанные в журнал, который получает этот командлет. Разрешено использовать подстановочные знаки.

Type:String[]
Aliases:ABO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-UserName

Указывает в качестве массива строк имена пользователей, связанные с событиями. Введите имена или шаблоны имен, например User01, User*или Domain01\User*. Разрешено использовать подстановочные знаки.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Входные данные

None

Невозможно передать входные данные в Get-EventLog.

Выходные данные

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

Если указан параметр LogName , выходные данные являются коллекцией объектов System.Diagnostics.EventLogEntry .

Если указан только параметр List , выходные данные являются коллекцией объектов System.Diagnostics.EventLog .

Если указаны параметры List и AsString , выходные данные представляют собой коллекцию объектов System.String .

Примечания

Командлеты Get-EventLog и Get-WinEvent не поддерживаются в среде предустановки Windows (Windows PE).