使用Powershell导出Windows事件日志

时间:2019-10-17 20:30:52

标签: c++ powershell

是否有可能通过PowerShell或其他任何编码方法通过事件日志清单导出所有Windows事件日志的方法?目标不仅是导出安全性,应用程序或系统中的事件日志,而且还导出Microsoft中可用的所有可能的事件日志。一定要包含描述,名称和ID吗?

2 个答案:

答案 0 :(得分:0)

您可以在此处进行很多调整,但这是基本要点。 “ -ListLog *”将为您获取所有日志名称,然后您逐步浏览它们。 “ -ErrorAction SilentlyContinue”是由于没有事件生成错误的日志所致。如果您想查看其他错误,可以捕获特定的异常(NoMatchingEventsFound)。

x

答案 1 :(得分:0)

如果要列出所有已注册的消息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,并使用下面的docs参考来提取数据。我尚未研究如何执行此操作,但是如果它是.Net,则可以在PowerShell中进行操作。

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

相关问题