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


Get-EventLog

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

Синтаксис

LogName (По умолчанию)

Get-EventLog
    [-LogName] <String>
    [[-InstanceId] <Int64[]>]
    [-ComputerName <String[]>]
    [-Newest <Int32>]
    [-After <DateTime>]
    [-Before <DateTime>]
    [-UserName <String[]>]
    [-Index <Int32[]>]
    [-EntryType <String[]>]
    [-Source <String[]>]
    [-Message <String>]
    [-AsBaseObject]
    [<CommonParameters>]

List

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

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

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

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

Пример 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 использует параметр свойства со звездочкой (*) для выбора всех свойств объекта.

Пример 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 для указания журнала событий приложения. Параметр источника указывает имя приложения, Outlook. Объекты отправляются по конвейеру в командлет Where-Object. Для каждого объекта в конвейере командлет Where-Object использует переменную $_.EventID для сравнения свойства идентификатора события с указанным значением. Объекты отправляются по конвейеру в командлет 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. использует параметр свойства , чтобы указать, что свойство userName используется для группировки объектов и подсчета количества объектов для каждого имени пользователя. Параметр NoElement удаляет членов группы из выходных данных. Объекты отправляются по конвейеру в командлет 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 и переменной $Begin, а также параметром Before и переменной $End.

Параметры

-After

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

Свойства параметров

Тип:DateTime
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-AsBaseObject

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

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-AsString

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

List
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Before

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

Свойства параметров

Тип:DateTime
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ComputerName

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

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

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

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:CN

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-EntryType

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

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

  • Ошибка
  • Информация
  • Аудит сбоев
  • УспехАудит
  • Предупреждение

Свойства параметров

Тип:

String[]

Default value:None
Допустимые значения:Error, Information, FailureAudit, SuccessAudit, Warning
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:Восточное время

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Index

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

Свойства параметров

Тип:

Int32[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InstanceId

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

Свойства параметров

Тип:

Int64[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-List

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

List
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LogName

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

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:LN

Наборы параметров

LogName
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Message

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

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:Глутамат натрия

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Newest

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

Свойства параметров

Тип:Int32
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Source

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

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:АБО

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-UserName

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

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

LogName
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

None

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

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

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

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

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

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

Примечания

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