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).
Связанные ссылки
PowerShell