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


Get-EventLog

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

Синтаксис

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

Описание

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

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

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

Примечание.

Get-EventLog использует устаревший API Win32. Результаты могут быть не точными. 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 для указания журнала событий системы. Новый параметр возвращает пять последних событий.

Пример 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 для указания системного журнала. Новый параметр выбирает последние события 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

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

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 для указания журнала событий системы. Новый параметр выбирает последний объект события. Объект хранится в переменной $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 для сравнения свойства идентификатора события с указанным значением. Объекты отправляются по конвейеру командлету Select-Object . Select-Objectиспользует параметр свойства для выбора свойств, отображаемых в консоли 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использует параметр свойства для выбора свойств, отображаемых в консоли PowerShell.

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

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

$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 и переменной After, $Begin а также параметром "До" и $End переменной "До".

Параметры

-After

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

Тип:DateTime
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsBaseObject

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

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AsString

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Before

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

Тип:DateTime
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

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

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

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

Тип:String[]
Aliases:Cn
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EntryType

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

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

  • Ошибка
  • Информация
  • FailureAudit
  • SuccessAudit
  • Предупреждение
Тип:String[]
Aliases:ET
Допустимые значения:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Index

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

Тип:Int32[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InstanceId

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

Тип:Int64[]
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-List

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LogName

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

Тип:String
Aliases:LN
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Message

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

Тип:String
Aliases:MSG
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Newest

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

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Source

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

Тип:String[]
Aliases:ABO
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-UserName

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

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки: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).