我制作了一个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
答案 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')