evtExportLog 函数 (winevt.h)
从指定的通道或日志文件复制事件,并将其写入目标日志文件。
语法
BOOL EvtExportLog(
[in, optional] EVT_HANDLE Session,
[in] LPCWSTR Path,
[in] LPCWSTR Query,
[in] LPCWSTR TargetFilePath,
[in] DWORD Flags
);
参数
[in, optional] Session
EvtOpenSession 函数返回的远程会话句柄。 对于本地通道,设置为 NULL 。
[in] Path
通道的名称或日志文件的完整路径,其中包含要导出的事件。 如果 Query 参数包含 XPath 查询,则必须指定通道或日志文件。 如果 Flags 参数包含 EvtExportLogFilePath,则必须指定日志文件。 如果 Query 参数包含结构化 XML 查询,则在此处指定的通道或路径必须与查询中的通道或路径匹配。 如果 Flags 参数包含 EvtExportLogChannelPath,则如果查询是指定通道的结构化 XML 查询,则此参数可以为 NULL 。
[in] Query
一个查询,指定要导出的事件类型。 可以指定 XPath 1.0 查询或结构化 XML 查询。 如果 XPath 包含的表达式超过 20 个,请使用结构化 XML 查询。 若要导出所有事件,请将此参数设置为 NULL 或“*”。
[in] TargetFilePath
将接收事件的目标日志文件的完整路径。 目标日志文件不得存在。
[in] Flags
指示事件是来自通道还是日志文件的标志。 有关可能的值,请参阅 EVT_EXPORTLOG_FLAGS 枚举。
返回值
返回代码/值 | 说明 |
---|---|
|
函数成功。 |
|
函数失败。 使用 GetLastError 函数获取错误代码。 |
注解
可以使用结构化 XML 查询从多个通道导出事件 (请参阅 使用事件) ;但是,不能使用此函数合并来自多个日志文件的事件。 如果查询结果为空,则服务将创建一个包含标头信息但不包含事件的文件。
若要从通道中删除事件并将其写入目标日志文件,请调用 EvtClearLog 函数。 若要将本地化字符串包含在日志文件中的事件中,请调用 EvtArchiveExportedLog 函数。
必须指定目标日志文件的绝对路径;不能使用相对路径和环境变量来指定目标日志文件。 路径可以是 UNC) 路径 (通用命名约定。 应使用 .evtx 作为文件扩展名。
此函数仅影响指定的通道或日志文件-如果通道使用 autoBackup 或 fileMax,则此函数不会影响这些备份文件。
示例
有关演示如何使用此函数的示例,请参阅 将事件保存到日志文件。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | winevt.h |
Library | Wevtapi.lib |
DLL | Wevtapi.dll |