如何使用PowerShell将Windows事件查看器日志保存到evtx?

wwtsj6pe  于 2023-04-22  发布在  Windows
关注(0)|答案(1)|浏览(248)

我试图将Windows事件保存为evtx文件,但没有成功。
我尝试了几种方法,但没有找到一种有效的方法。我使用的是PowerShell 7.3.2。假设我只想获取前10个事件。

$logs = Get-WinEvent -LogName Application | Select-Object -First 10
$logs | Export-Xml -Path "test.xml"

我发现没有办法将XML转换为evtx或直接将$logs保存为evtx。有没有办法通过code/terminal将这些xml文件转换为evtx?我更喜欢powershell代码,但我认为python也可以工作。

ttvkxqim

ttvkxqim1#

在PowerShell中,对事件日志cmdlet的支持仅限于Get-WinEvent。(Others are not planned right now.
您可以使用上面注解中提到的wevtutil.exe export-log,也可以使用CIM来完成此操作:

$backupLogPath = "$env:TEMP\mylog.evtx"
$logfile = Get-CimInstance Win32_NTEventlogFile | Where-Object LogfileName -EQ "Application"
Invoke-CimMethod -InputObject $logfile -MethodName BackupEventLog -Arguments @{ ArchiveFileName = $backupLogPath }
  • 旁注:WMI直接暴露BackupEventlogCIM不会这样做。*

相关问题