尝试将Eventlog文件复制到另一个文件夹以进行备份

时间:2014-12-29 13:53:25

标签: c# copy event-log

我尝试复制EventLog"应用程序"到我的电脑上的另一个文件夹,但总是得到错误

  

" ....无法找到路径的一部分   ' C:\ Windows \ System32下\ winevt \日志\ Application.evtx ..."

我使用代码:

public void collectEventLogsFromSystem(string RequestedlogName,string newFolderPath)
{
    string combinedLogToFind =      "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Eventlog\\" + RequestedlogName;
    string LogEventsPath = (string)Registry.GetValue(combinedLogToFind, "File", null);
    if (LogEventsPath != null)
    {
        System.IO.File.Copy(LogEventsPath, newFolderPath +"\\"+ RequestedlogName, true);               
    }

}//collectEventLogsFromSystem method

即使我使用显式文件夹路径,它仍然无法工作:

System.IO.File.Copy(@"C:\Windows\System32\winevt\Logs\Application.evtx", "c:\\ttt\\Application.evtx", true);

任何想法?

2 个答案:

答案 0 :(得分:0)

我在StackOverflow上找到了这个答案,这可能会解决你的问题。我有一台64位机器,表现出相同的行为。 John Rasch的这个post解决了这个问题并解释了它失败的原因。

答案 1 :(得分:0)

如果您在程序运行时尝试获取日志文件,则上述方法将无效。此帖子Export Event Log (.evtx) without "run as administrator"将允许您备份事件日志,即使您当前正在使用应用程序中的事件日志。