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