Экспорт журналов событий Windows с помощью Powershell - PullRequest
0 голосов
/ 17 октября 2019

Есть ли способ экспортировать ВСЕ журналы событий Windows, возможно, через Манифест журнала событий с помощью PowerShell или любым другим способом кодирования? Целью является не только экспорт журналов событий в Security, Application или System, но и все возможные журналы событий, доступные в Microsoft. Это должно быть что-то, чтобы включить описание, имя и идентификатор?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Если вы хотите перечислить все зарегистрированные DLL-библиотеки сообщений, вот как вы это делаете:

$lognames = Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\ | Select Name
$DLLs = foreach ($logname in $lognames) {
    $providers = gci $logname.Name.Replace('HKEY_LOCAL_MACHINE','HKLM:')
    foreach ($provider in $providers) {
        $item = get-itemproperty  -Path $provider.name.replace('HKEY_LOCAL_MACHINE','HKLM:')
        $item.EventMessageFile
    }
}

После этого вы можете пройтись по $ DLL и использовать ссылку на документы ниже для извлечения данных. Я не смотрел, как это сделать, но если это .Net, вы можете сделать это в PowerShell.

https://docs.microsoft.com/en-us/windows/win32/eventlog/message-files

0 голосов
/ 17 октября 2019

Здесь можно сделать множество твиков, но это основная суть. «-ListLog *» выдаст вам все имена журналов, а затем вы просто пройдитесь по ним. «-ErrorAction SilentlyContinue» из-за журналов без событий, генерирующих ошибки. Вы можете перехватить определенное исключение (NoMatchingEventsFound), если хотите увидеть другие ошибки.

$Logs = Get-Winevent -ListLog *

foreach ($Log in $Logs) {
  Get-WinEvent -LogName $Log.LogName -ErrorAction SilentlyContinue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...