Может ли Logparser запрашивать новые типы файлов журналов в 2008 году

Я пытаюсь исследовать проблему и хотел бы использовать Logparser для удаленного запроса одного из более новых типов журналов 2008 года ко многим удаленным серверам. Я хочу запросить журнал установки, а не приложение, систему, безопасность. Logparser, похоже, не знает этих новых типов журналов, и я не смог найти способ сделать это без определенных хаков.

Я видел несколько сообщений о других хакерах, чтобы сделать это возможным. Поскольку мне нужно запросить около 100 серверов, найденные мной хаки не идеальны. Wevtutil конвертировать весь файл перед запросом неэффективно и нецелесообразно делать это удаленно на многих машинах. Добавление regkeys в HKLM\SYSTEM\CurrentControlSet\services\eventlog утомительно, потому что каждый раз, когда вы хотите запросить другой из этих новых типов журналов, вам нужен новый ключ.

Использование полного пути к файлу EVTX обрабатывает его как текст и не дает полезного вывода. Указание ввода в качестве EVT приводит к ошибке использования файла. Запрос делается с машины 2008 R2, где в другом сообщении говорилось, что Logparser будет поддерживать файлы EVTX. Можно ли использовать Logparser удаленно против этих новых журналов без этих хаков?

PS C:\> .\LogParser.exe "SELECT * FROM \\NOBODY\admin$\System32\winevt\Logs\setup.evtx"
WARNING: Input format not specified - using TEXTLINE input format.
LogFilename                                        Index Text
-------------------------------------------------- ----- -------
\\NOBODY\admin$\System32\winevt\Logs\Setup.evtx 1     ElfFile
\\NOBODY\admin$\System32\winevt\Logs\Setup.evtx 2     ♦A  à
\\NOBODY\admin$\System32\winevt\Logs\Setup.evtx 3     ╫
Press a key...
Task aborted by user.

PS F:\apps\Logparser> .\LogParser.exe /i:evt "SELECT * FROM \\NOBODY\admin$\System32\winevt\Logs\setup.evtx"
Task aborted.
Cannot open <from-entity>: Error opening event log "\\?\UNC\SDCBOOP22\admin$\
  System32\winevt\Logs\Setup.evtx": The process cannot access the file
  because it is being used by another process.

PS C:\> .\LogParser.exe /i:evt "SELECT * FROM \\NOBODY\Setup"
Error: Error retrieving files: Error searching for files in folder \\NOBODY\Setup: The network na
me cannot be found.

PS C:\> .\LogParser.exe "SELECT * FROM \\NOBODY\Setup"
WARNING: Input format not specified - using TEXTLINE input format.
Task aborted.
Cannot open <from-entity>: Error opening files: Error searching for files in
  folder \\NOBODY\Setup: The network name cannot be found.

1 ответ

Вы находитесь на правильном пути, используя опцию /i:EVT с LogParser, но вы явно не читаете вывод - он ясно говорит The process cannot access the file because it is being used by another process.

Вы не можете получить доступ к файлам журнала работающей машины - они заблокированы службой событий. Если вам нужно запрашивать события с активных машин, рассмотрите возможность доступа к снимку VSS, где блокировка не будет проблемой, или вместо этого используйте WQL-запросы к журналу событий. Так как вы все равно используете PowerShell, класс System.Diagnostics.Eventlog также поможет вам в этом.

Другие вопросы по тегам