我试图研究一个问题,并希望使用Logparser来远程查询对于许多远程服务器的较新的2008日志types之一。 我想查询安装程序日志,而不是应用程序,系统,安全性。 Logparser似乎对这些新的日志types一无所知,我一直无法find一种方法来做到这一点,没有一定的黑客。
我已经看到一些关于其他黑客的post,使之成为可能。 因为我需要查询大约100台服务器,我发现的黑客并不理想。 Wevtutil在查询之前将整个文件转换为低效率,而不适合在许多机器上远程执行此操作。 将registry添加到HKLM \ SYSTEM \ CurrentControlSet \ services \ eventlog是单调乏味的,因为每次要查询这些新的日志types中的不同日志types时,都需要新的密钥。
使用EVTX文件的完整path将其视为文本,并不会生成有用的输出。 将input指定为EVT会导致文件使用错误。 查询是从2008 R2机器上进行的,另一个post说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.
您正在使用LogParser的/ i:EVT选项,但显然没有读取输出 – 它清楚地表明The process cannot access the file because it is being used by another process.
您无法访问正在运行的计算机的日志文件 – 这些文件被事件日志服务locking。 如果您需要从实时计算机查询事件,请考虑访问locking不成问题的VSS快照 ,或者对事件日志使用WQL查询 。 由于您仍在使用PowerShell,因此使用System.Diagnostics.Eventlog类也应该可以实现。