Get-WinEvent用于导出.evt文件。但是无法在事件查看器中打开evt文件 - 文件损坏的消息

时间:2015-09-29 02:41:47

标签: powershell logging powershell-v2.0 event-log

我制作了一个Powershell脚本来提取应用程序&系统日志来自不同域中的远程服务器。脚本完美无缺!但是,我遇到了导出文件的问题。当我尝试在事件查看器中打开日志文件时,我收到一条消息,指出日志文件已损坏且无法读取。以下是该脚本的一部分:

$apppath = "\\server01\D$\temp\Automated_Logs\applog_" + $server + ".evtx"
Get-WinEvent -FilterHashtable @{ logname = 'Application'; StartTime = $start; EndTime = $end } -ComputerName $server -Credential $c | Out-File -FilePath $apppath 

服务器操作系统:Windows Server 2003/2008

2 个答案:

答案 0 :(得分:1)

Get-WinEvent将事件日志和evt文件作为.NET对象读入内存。您不能将这些对象与文件相同,并创建有效的evtx文件。看看wevtutil.exe将日志条目写入evtx文件。 https://technet.microsoft.com/en-us/library/cc732848.aspx

答案 1 :(得分:0)

如果要以PowerShell方式进行操作,则可以使用WMI BackupEventlog 方法。

例如:

(Get-WmiObject -Class Win32_NTEventlogFile | Where-Object LogfileName -EQ 'System').BackupEventlog('C:\Temp\System.evtx')