Get-WinEvent
Получает события из журналов событий и файлов журналов трассировки событий на локальных и удаленных компьютерах.
Синтаксис
Get-WinEvent
[[-LogName] <String[]>]
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-ListLog] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[<CommonParameters>]
Get-WinEvent
[-ListProvider] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
Get-WinEvent
[-ProviderName] <String[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <String[]>
[-MaxEvents <Int64>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterHashtable] <Hashtable[]>
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXml] <XmlDocument>
[-Oldest]
[<CommonParameters>]
Описание
Командлет Get-WinEvent
получает события из журналов событий, включая классические журналы, такие как журналы системы и приложений . Командлет получает данные из журналов событий, созданных технологией журнала событий Windows, представленной в Windows Vista и событиях в файлах журналов, созданных трассировкой событий для Windows (ETW). По умолчанию Get-WinEvent
возвращает сведения о событии в порядке новейших до старых.
Get-WinEvent
выводит список журналов событий и поставщиков журналов событий. Чтобы прервать команду, нажмите клавиши CTRL+C. События можно получить из выбранных журналов или из журналов, созданных выбранными поставщиками событий. Кроме того, можно объединять события из нескольких источников в одну команду.
Get-WinEvent
позволяет фильтровать события с помощью запросов XPath, структурированных XML-запросов и хэш-таблиц.
Если вы не используете PowerShell в качестве администратора, могут появиться сообщения об ошибках, которые нельзя получить в журнале.
Примеры
Пример 1. Получение всех журналов с локального компьютера
Эта команда получает все журналы событий на локальном компьютере. Журналы перечислены в порядке их Get-WinEvent
получения. Классические журналы сначала извлекаются, а затем новые журналы событий Windows.
Запись журнала может иметь значение NULL, что является пустым или нулевым.
Get-WinEvent -ListLog *
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14500 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 3015 CxAudioSvcLog
Circular 20971520 ForwardedEvents
Circular 20971520 0 HardwareEvents
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListLog использует подстановочный знак звездочки (*
) для отображения сведений о каждом журнале.
Пример 2. Получение классического журнала установки
Эта команда получает объект EventLogConfiguration, представляющий классический журнал установки. Объект содержит сведения о журнале, таких как размер файла, поставщик, путь к файлу и включение журнала.
Get-WinEvent -ListLog Setup | Format-List -Property *
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Setup
LogType : Operational
LogIsolation : Application
IsEnabled : True
IsClassicLog : False
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes : 1052672
LogMode : Circular
OwningProviderName : Microsoft-Windows-Eventlog
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
Командлет Get-WinEvent
использует параметр ListLog для указания журнала установки . Объект отправляется по конвейеру командлету Format-List
. Format-List
использует параметр Property с подстановочным знаком звездочки (*
) для отображения каждого свойства.
Пример 3. Настройка классического журнала безопасности
Эта команда получает объект EventLogConfiguration, представляющий классический журнал безопасности. Затем объект используется для настройки параметров журнала, таких как максимальный размер файла, путь к файлу и включение журнала.
$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
$log.SaveChanges()
Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
$ErrMsg = 'You do not have permission to configure this log!'
$ErrMsg += ' Try running this script with administrator privileges. '
$ErrMsg += $_.Exception.Message
Write-Error $ErrMsg
}
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Security
LogType : Administrative
LogIsolation : Custom
IsEnabled : True
IsClassicLog : True
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Security.evtx
MaximumSizeInBytes : 1073741824
LogMode : Circular
OwningProviderName :
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
Командлет Get-WinEvent
использует параметр ListLog для указания журнала безопасности . Объект сохраняется в переменной. Свойство MaximumSizeInBytes имеет значение 1 гигабайт в объекте. Метод SaveChanges вызывается для отправки изменений в систему внутри блока try для обработки нарушений доступа. Командлет Get-WinEvent
вызывается снова в журнале безопасности и отправляется Format-List
командлету, чтобы убедиться, что свойство MaximumSizeInBytes сохранено на компьютере.
Пример 4. Получение журналов событий с сервера
Эта команда получает только журналы событий на локальном компьютере с событиями. Запись журнала может иметь значение NULL или ноль. В примере используется $_
переменная. Дополнительные сведения см. в статье about_Automatic_Variables.
Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14546 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 2990 CxAudioSvcLog
Circular 1052672 9 MSFTVPN Setup
Circular 1052672 282 OAlerts
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListLog использует подстановочный знак звездочки (*
) для отображения сведений о каждом журнале. Параметр ComputerName указывает, чтобы получить журналы с локального компьютера, localhost. Объекты отправляются по конвейеру командлету Where-Object
. Where-Object
используется $_.RecordCount
для возврата только журналов, содержащих данные. $_
— это переменная, представляющая текущий объект в конвейере. RecordCount — это свойство объекта с ненулевым значением.
Пример 5. Получение журналов событий с нескольких серверов
В этом примере получаются объекты, представляющие журналы событий приложения на трех компьютерах: Server01, Server02 и Server03. Ключевое слово ForEach используется, так как параметр ComputerName принимает только одно значение. Дополнительные сведения см. в about_Foreach.
$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
Get-WinEvent -ListLog Application -ComputerName $Server |
Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
@{name='ComputerName'; expression={$Server}} |
Format-Table -AutoSize
}
LogMode MaximumSizeInBytes RecordCount LogName ComputerName
------- ------------------ ----------- ------- ------------
Circular 15532032 14577 Application Server01
Circular 15532032 9689 Application Server02
Circular 15532032 5309 Application Server03
Переменная $S
хранит имена трех серверов: Server01, Server02 и Server03. Оператор ForEach использует цикл для обработки каждого сервера ($Server in $S)
. Блок скрипта в фигурных скобках ({ }
) выполняет Get-WinEvent
команду. Параметр ListLog указывает журнал приложений. Параметр ComputerName использует переменную $Server
для получения сведений журнала с каждого сервера.
Объекты отправляются по конвейеру командлету Select-Object
. Select-Object
возвращает свойства LogMode, MaximumSizeInBytes, RecordCount, LogName и использует вычисляемое выражение для отображения имени компьютера с помощью переменной$Server
. Объекты отправляются по конвейеру Format-Table
командлету, чтобы отобразить выходные данные в консоли PowerShell. Параметр AutoSize форматирует выходные данные для соответствия экрану.
Пример 6. Получение поставщиков журналов событий и имен журналов
Эта команда получает поставщиков журналов событий и журналы, в которые они записывают.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListProvider использует подстановочный знак звездочки (*
) для отображения сведений о каждом поставщике. В выходных данных имя — это поставщик и LogLinks — это журнал, в который записывается поставщик.
Пример 7. Получение всех поставщиков журналов событий, записываемых в определенный журнал.
Эта команда получает всех поставщиков, записываемых в журнал приложений.
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListLog использует приложение для получения объектов для этого журнала. ProviderNames — это свойство объекта и отображает поставщиков, записываемых в журнал приложений.
Пример 8. Получение имен поставщиков журналов событий, содержащих определенную строку
Эта команда получает поставщиков журналов событий с именами, включающими определенную строку в имя поставщика.
Get-WinEvent -ListProvider *Policy*
Name : Group Policy Applications
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Client
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Data Sources
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListProvider использует подстановочный знак звездочки (*
) для поиска политики в любом месте имени поставщика.
Пример 9. Получение идентификаторов событий, создаваемых поставщиком событий
Эта команда содержит идентификаторы событий, создаваемые поставщиком событий Microsoft-Windows-GroupPolicy , а также описание события.
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description
Id Description
-- -----------
1500 The Group Policy settings for the computer were processed successfully...
1501 The Group Policy settings for the user were processed successfully...
4115 Group Policy Service started.
4116 Started the Group Policy service initialization phase.
4117 Group Policy Session started.
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр ListProvider указывает поставщика Microsoft-Windows-GroupPolicy. Выражение упаковывается в скобки и использует свойство Events для получения объектов. Объекты отправляются по конвейеру командлету Format-Table
. Format-Table
отображает идентификатор и описание объектов событий.
Пример 10. Получение сведений журнала из свойств объекта события
В этом примере показано, как получить сведения о содержимом журнала с помощью свойств объекта события. Объекты событий хранятся в переменной, а затем группируются и подсчитываются по идентификатору события и уровню.
$Event = Get-WinEvent -LogName 'Windows PowerShell'
$Event.Count
$Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
$Event | Group-Object -Property LevelDisplayName -NoElement
195
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
Count Name
----- ----
2 Warning
193 Information
Командлет использует параметр LogName для указания журнала событий Windows PowerShell.Get-WinEvent
Объекты событий хранятся в переменной $Event
. Свойство Count $Event
показывает общее количество зарегистрированных событий.
Переменная $Event
отправляется по конвейеру командлету Group-Object
. Group-Object
использует параметр Property, чтобы указать свойство Id и подсчитывает объекты по значению идентификатора события. Параметр NoElement удаляет другие свойства из выходных данных объектов. Сгруппированные объекты отправляются по конвейеру командлету Sort-Object
. Sort-Object
использует параметр Property для сортировки объектов по счетчику. Параметр "Убывание " отображает выходные данные по количеству, от максимального до самого низкого. В выходных данных столбец Count содержит общее число каждого события. Столбец "Имя" содержит номера идентификаторов сгруппированных событий.
Переменная $Event
отправляется по конвейеру командлету Group-Object
. Group-Object
использует параметр Property для указания свойства LevelDisplayName и подсчета объектов по LevelDisplayName. Объекты группируются по уровням, таким как предупреждение и информация.
Параметр NoElement удаляет другие свойства из выходных данных. В выходных данных столбец Count содержит общее число каждого события. Столбец Name содержит группованный levelDisplayName.
Пример 11. Получение событий ошибок с указанной строкой в имени
В этом примере используется строка имен журналов, разделенная запятыми. Выходные данные группируются по уровню, такому как ошибка или предупреждение, и имя журнала.
Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* |
Group-Object -Property LevelDisplayName, LogName -NoElement |
Format-Table -AutoSize
Count Name
----- ----
1 Error, PowerShellCore/Operational
26 Information, Microsoft-Windows-Kernel-WHEA/Operational
488 Information, Microsoft-Windows-PowerShell/Operational
77 Information, PowerShellCore/Operational
9835 Information, Windows PowerShell
19 Verbose, PowerShellCore/Operational
444 Warning, Microsoft-Windows-PowerShell/Operational
512 Warning, PowerShellCore/Operational
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр LogName использует строку, разделенную запятыми, со звездочкой (*
) для указания имен журналов. Объекты отправляются по конвейеру командлету Group-Object
. Group-Object
использует параметр Property для группировки объектов по LevelDisplayName и LogName. Параметр NoElement удаляет другие свойства из выходных данных. Сгруппированные объекты отправляются по конвейеру командлету Format-Table
. Format-Table
использует параметр AutoSize для форматирования столбцов. Столбец Count содержит общее число каждого события. Столбец Name содержит группируемый levelDisplayName и LogName.
Пример 12. Получение событий из архивного журнала событий
Get-WinEvent
может получить сведения о событии из сохраненных файлов журнала. В этом примере используется архивный журнал PowerShell, хранящийся на локальном компьютере.
Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 13:54:13 403 Information Engine state is changed from Available to Stopped...
3/15/2019 13:54:13 400 Information Engine state is changed from None to Available...
3/15/2019 13:54:13 600 Information Provider "Variable" is Started...
3/15/2019 13:54:13 600 Information Provider "Function" is Started...
3/15/2019 13:54:13 600 Information Provider "FileSystem" is Started...
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр Path задает имя каталога и файла.
Пример 13. Получение определенного количества событий из архивного журнала событий
Эти команды получают определенное количество событий из архивного журнала событий. Get-WinEvent
имеет параметры, которые могут получить максимальное количество событий или старейших событий. В этом примере используется архивный журнал PowerShell, хранящийся в C:\Test\PowerShellCore Operational.evtx.
Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100
ProviderName: PowerShellCore
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 09:54:54 4104 Warning Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13 40962 Information PowerShell console is ready for user input
3/15/2019 07:56:24 4104 Warning Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22 40961 Information PowerShell console is starting up
3/7/2019 10:53:22 8197 Verbose Runspace state changed to Opening
3/7/2019 10:53:22 8195 Verbose Opening RunspacePool
Командлет Get-WinEvent
получает данные журнала с компьютера. Параметр Path указывает каталог и имя файла. Параметр MaxEvents указывает, что отображаются 100 записей от самых новых до старых.
Пример 14. Трассировка событий для Windows
Трассировка событий для Windows (ETW) записывает события в журнал по мере возникновения событий. События хранятся в порядке старейших до новейших. Архивированный файл ETW сохраняется в виде .etl
такого файла, как TraceLog.etl.
События перечислены в том порядке, в котором они записываются в журнал, поэтому требуется самый старый параметр.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
Sort-Object -Property TimeCreated -Descending |
Select-Object -First 100
Командлет Get-WinEvent
получает данные журнала из архивного файла. Параметр Path задает имя каталога и файла. Самый старый параметр используется для вывода событий в том порядке, в который они записываются, старее до новейших. Объекты отправляются по конвейеру командлетуSort-Object
, сортируя объекты в порядке убывания по значению свойства TimeCreated.Sort-Object
Объекты отправляются по конвейеру Select-Object
командлету, который отображает 100 новейших событий.
Пример 15. Получение событий из журнала трассировки событий
В этом примере показано, как получить события из файла журнала трассировки событий (.etl
) и архивированного файла журнала Windows PowerShell (.evtx
). Можно объединить несколько типов файлов в одну команду.
Так как файлы содержат один и тот же тип объекта платформа .NET Framework EventLogRecord, их можно фильтровать с теми же свойствами. Для команды требуется старый параметр, так как он считывается из .etl
файла, но самый старый параметр применяется к каждому файлу.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
Командлет Get-WinEvent
получает данные журнала из архивных файлов. Параметр Path использует разделенный запятыми список для указания каждого каталога файлов и имени файла. Самый старый параметр используется для вывода событий в том порядке, в который они записываются, старее до новейших. Объекты отправляются по конвейеру командлету Where-Object
. Where-Object
использует блок скрипта для поиска событий с идентификатором 403. Переменная $_
представляет текущий объект в конвейере и идентификатор является свойством Идентификатора события.
Пример 16. Фильтрация результатов журнала событий
В этом примере показаны различные методы для фильтрации и выбора событий из журнала событий. Все эти команды получают события, произошедшие за последние 24 часа из журнала событий Windows PowerShell .
Методы фильтрации более эффективны, чем использование командлета Where-Object
. Фильтры применяются при извлечении объектов. Where-Object
извлекает все объекты, а затем применяет фильтры ко всем объектам.
# Using the Where-Object cmdlet:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
$xmlQuery = @'
<QueryList>
<Query Id="0" Path="Windows PowerShell">
<Select Path="System">*[System[(Level=3) and
TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath
Пример 17. Использование FilterHashtable для получения событий из журнала приложений
В этом примере используется параметр FilterHashtable для получения событий из журнала приложений. В хэш-таблице используются пары "ключ-значение ". Дополнительные сведения о параметре FilterHashtable см. в разделе "Создание запросов Get-WinEvent с помощью FilterHashtable". Дополнительные сведения о хэш-таблицах см. здесь.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Командлет Get-Date
использует метод AddDays для получения даты, которая составляет два дня до текущей даты. Объект date хранится в переменной $Date
.
Командлет получает сведения о журнале Get-WinEvent
. Параметр FilterHashtable используется для фильтрации выходных данных. Ключ LogName указывает значение в качестве журнала приложения . Ключ StartTime использует значение, хранящееся в переменной $Date
. Ключ идентификатора использует значение идентификатора события 1003.
Пример 18. Использование FilterHashtable для получения ошибок приложения
В этом примере используется параметр FilterHashtable для поиска ошибок приложения Internet Explorer, которые произошли за последнюю неделю.
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
Logname='Application'
ProviderName='Application Error'
Data='iexplore.exe'
StartTime=$StartTime
}
Командлет Get-Date
использует метод AddDays для получения даты, которая составляет семь дней до текущей даты. Объект date хранится в переменной $StartTime
.
Командлет получает сведения о журнале Get-WinEvent
. Параметр FilterHashtable используется для фильтрации выходных данных. Ключ LogName указывает значение в качестве журнала приложения . Ключ ProviderName использует значение, ошибка приложения, которая является источником события. Ключ данных использует значение iexplore.exe Ключ StartTime использует значение, хранящееся в $StartTime
переменной.
Параметры
-ComputerName
Указывает имя компьютера, который этот командлет получает события из журналов событий. Введите имя NetBIOS, IP-адрес или полное доменное имя компьютера. Значением по умолчанию является локальный компьютер, localhost. Этот параметр принимает только одно имя компьютера за один раз.
Чтобы получить журналы событий с удаленных компьютеров, настройте порт брандмауэра для службы журналов событий, чтобы разрешить удаленный доступ.
Этот командлет не зависит от удаленного взаимодействия PowerShell. Параметр ComputerName можно использовать, даже если компьютер не настроен для выполнения удаленных команд.
Тип: | String |
Aliases: | Cn |
Position: | Named |
Default value: | Local computer |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Credential
Указывает учетную запись пользователя с разрешением на выполнение этого действия. Значение по умолчанию: текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01. Или введите объект PSCredential , например один, созданный командлетом Get-Credential
. Если ввести имя пользователя, вам будет предложено ввести пароль. Если ввести только имя параметра, вам будет предложено как имя пользователя, так и пароль.
Тип: | PSCredential |
Position: | Named |
Default value: | Current user |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FilterHashtable
Задает запрос в формате хэш-таблицы для выбора событий из одного или нескольких журналов событий. Запрос содержит хэш-таблицу с одной или несколькими парами "ключ-значение ".
К запросам хэш-таблиц применяются следующие правила.
- Ключи и значения обрабатываются без учета регистра.
- Подстановочные знаки допустимы только в значениях, связанных с ключами LogName и ProviderName .
- Каждый ключ может быть указан только один раз в каждой хэш-таблице.
- Значение пути принимает пути к
.etl
файлам журнала и ,.evt
а также.evtx
к файлам журнала. - Ключи LogName, Path и ProviderName можно использовать в одном запросе.
- Ключ UserID может принимать допустимый идентификатор безопасности (SID) или имя учетной записи домена, которое можно использовать для создания допустимого объекта System.Security.Principal.NTAccount.
- Значение "Данные" принимает данные события в неназванном поле. Например, события в классических журналах событий.
Если Get-WinEvent
не удается интерпретировать пару "ключ-значение", он интерпретирует ключ как имя с учетом регистра для данных события в событии.
Допустимые Get-WinEvent
пары "ключ-значение " приведены следующим образом:
- Имя журнала=
<String[]>
- ProviderName=
<String[]>
- Путь=
<String[]>
- Ключевые слова=
<Long[]>
- ИД=
<Int32[]>
- Уровень=
<Int32[]>
- StartTime=
<DateTime>
- EndTime=
<DateTime>
- UserID=
<SID>
- Данные=
<String[]>
Тип: | Hashtable[] |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FilterXml
Указывает структурированный XML-запрос, который этот командлет выбирает события из одного или нескольких журналов событий.
Чтобы создать допустимый XML-запрос, используйте функции создания пользовательского представления и фильтрации текущего журнала в Windows Просмотр событий. Создайте запрос с помощью элементов в диалоговом окне, а затем перейдите на вкладку XML для просмотра запроса в формате XML. XML-файл можно скопировать с вкладки XML в значение параметра FilterXml. Дополнительные сведения о компонентах средства просмотра событий см. в справке средства.
Используйте XML-запрос для создания сложного запроса, содержащего несколько инструкций XPath. Формат XML также позволяет использовать элемент Suppress XML , который исключает события из запроса. Дополнительные сведения о схеме XML для запросов журнала событий см. в разделе "Схема запроса" и раздел "Запросы событий XML" выбора событий.
Тип: | XmlDocument |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FilterXPath
Указывает запрос XPath, который этот командлет выбирает события из одного или нескольких журналов.
Дополнительные сведения о языке XPath см. в разделе "Справочник по XPath" и раздел "Фильтры выбора" в разделе "Выбор событий".
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Получает журналы отладки и аналитики в дополнение к другим журналам событий. Параметр Force необходим для получения журнала отладки или аналитики, если значение параметра имени содержит подстановочные знаки.
По умолчанию командлет исключает эти журналы, Get-WinEvent
если вы не укажете полное имя отладочного или аналитического журнала.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ListLog
Определяет журналы событий. Введите имена журналов событий в список, разделяя их запятыми. Разрешено использовать подстановочные знаки. Чтобы получить все журналы, используйте подстановочный знак звездочки (*
).
Тип: | String[] |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-ListProvider
Указывает поставщики журналов событий, которые получает этот командлет. Поставщик журнала событий — это программа или служба, которая записывает события в журнал событий.
Введите имена поставщиков в список, разделяя их запятыми. Разрешено использовать подстановочные знаки. Чтобы получить поставщиков всех журналов событий на компьютере, используйте подстановочный знак звездочки (*
).
Тип: | String[] |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-LogName
Указывает журналы событий, из которым этот командлет получает события. Введите имена журналов событий в список, разделяя их запятыми. Разрешено использовать подстановочные знаки. Вы также можете передать имена журналов командлету Get-WinEvent
.
Примечание.
PowerShell не ограничивает количество журналов, которые можно запросить. Get-WinEvent
Однако командлет запрашивает API Windows, который имеет ограничение в 256. Это может затруднить фильтрацию по всем журналам одновременно. Это можно обойти с помощью цикла для итерации по каждому журналу foreach
, как показано ниже: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.Logname }
Тип: | String[] |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-MaxEvents
Указывает максимальное количество возвращаемых событий. Введите целое число, например 100. Значение по умолчанию: возврат всех событий в журналах или файлах.
Тип: | Int64 |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Oldest
Укажите, что этот командлет получает события в старом порядке. По умолчанию события возвращаются в порядке "сначала новые".
Этот параметр необходим для получения событий из .etl
и файлов, .evt
а также от отладочных и аналитических журналов. В этих файлах события записываются в порядке "старые сначала", поэтому они могут быть возвращены только в том же порядке.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к файлам журнала событий, из которой этот командлет получает события. Введите разделенный запятыми список путей к файлам или используйте подстановочные знаки для создания шаблонов путей к файлам.
Get-WinEvent
поддерживает файлы с .evt
.evtx
расширениями имени файла и .etl
файла. В одну команду можно включить события из разных файлов и типов файлов.
Тип: | String[] |
Aliases: | PSPath |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-ProviderName
Указывает в виде строкового массива поставщики журналов событий, из которых этот командлет получает события. Введите разделенный запятыми список имен поставщиков или используйте подстановочные знаки для создания шаблонов имен поставщиков.
Поставщик журнала событий — это программа или служба, которая записывает события в журнал событий. Это не поставщик PowerShell.
Тип: | String[] |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
Входные данные
Вы можете передать имя журнала (строку) в этот командлет.
Вы можете передать запрос FilterXML в этот командлет.
Вы можете передать запрос FilterHashtable в этот командлет.
Выходные данные
С параметром ListLog этот командлет возвращает объекты EventLogConfiguration.
По умолчанию этот командлет возвращает объекты EventLogRecord .
С параметром ListProvider этот командлет возвращает объекты ProviderMetadata .
Примечания
Get-WinEvent
предназначен для замены командлета Get-EventLog
на компьютерах под управлением Windows Vista и более поздних версий Windows. Get-EventLog
получает события только в классических журналах событий. Функция Get-EventLog
поддерживается для совместимости с предыдущими версиями.
Get-EventLog
Командлеты Get-WinEvent
не поддерживаются в среде предварительной установки Windows (windows PE).
Связанные ссылки
PowerShell