C++ EvtArchiveExportedLog失败,错误为\u目录
我需要将Windows事件日志中的一些事件导出到Windows Server 2008 R2上的XML。为了实现这一点,我使用EvtExportLog将这些事件导出到一个文件中,然后尝试使用EvtArchiveExportedLog获取事件的本地化描述。 以下是示例:C++ EvtArchiveExportedLog失败,错误为\u目录,c++,windows,winapi,event-log,C++,Windows,Winapi,Event Log,我需要将Windows事件日志中的一些事件导出到Windows Server 2008 R2上的XML。为了实现这一点,我使用EvtExportLog将这些事件导出到一个文件中,然后尝试使用EvtArchiveExportedLog获取事件的本地化描述。 以下是示例: EvtExportLog( 0, 0, query, logFileName, EvtExportLogChannelPath ); EvtArchiveExportedLog( 0, logFileName, 0, 0 );
EvtExportLog( 0, 0, query, logFileName, EvtExportLogChannelPath );
EvtArchiveExportedLog( 0, logFileName, 0, 0 );
EvtExportLog函数成功并创建.evtx文件,但EvtArchiveExportedLog不断失败,出现错误\目录错误代码。我不知道这种行为的原因是什么。看来我已经找到了原因
EvtArchiveExportedLog
对承载事件日志服务的svchost.exe进行RPC调用。此服务尝试在“%windir%\ServiceProfiles\LocalService\AppData\Local\Temp”文件夹中创建一个文件,由于ERROR\u ACCESS\u DENIED
code而失败,并将ERROR\u目录
返回到RPC客户端。就RPC服务器模拟客户端而言,解决方案是向调用线程授予访问权限。警告:这些临时文件的模式为pub*.tmp、msg*.tmp和evt*.tmp,它们将被创建,并且不会通过调用EvtArchiveExportedLog被删除。指示路径实际上是%systemroot%\ServiceProfiles\LocalService\AppData\Local\Temp[对于大多数人来说C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp]