我使用以下代码导出Windows-Event-Log:
var els = new EventLogSession();
els.ExportLogAndMessages("Application",
PathType.LogName,
"*[System[Provider[@Name='Prayon.Client']]]",
tempEventLogPath,
false,
CultureInfo.CurrentCulture);
这通常有效。但是在一台机器上,我得到了一个不合时宜的例外:
System.Diagnostics.Eventing.Reader.EventLogException: Der Verzeichnisname ist ungültig
bei System.Diagnostics.Eventing.Reader.EventLogException.Throw(Int32 errorCode)
bei System.Diagnostics.Eventing.Reader.NativeWrapper.EvtArchiveExportedLog(EventLogHandle session, String logFilePath, Int32 locale, Int32 flags)
bei System.Diagnostics.Eventing.Reader.EventLogSession.ExportLogAndMessages(String path, PathType pathType, String query, String targetFilePath, Boolean tolerateQueryErrors, CultureInfo targetCultureInfo)
"Der Verzeichnisname ist ungültig"
表示英文:"The pathname is invalid"
Application-EventLog已存在且tempEventLogPath
也有效。
有人知道,可能有什么不对吗?
答案 0 :(得分:0)
请参阅以下内容中的可能答案: EvtArchiveExportedLog fails with ERROR_DIRECTORY
问题是,即使您有权访问答案中提到的目录,也可能由于UAC通知而失败(您可以禁用UAC并且它应该可以工作)。
答案 1 :(得分:0)
尝试删除目标目录中的LocalMetaData目录。
我遇到了同样的问题。 第一个调用有效,但每个后续调用都会获得上述异常。 使用Processmonitor进行的调查显示,除了evtx文件之外,还访问了目录LocalMetaData。 删除此目录后,导出将再次起作用。