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 列舉。
傳回值
傳回碼/值 | Description |
---|---|
|
此函數已成功。 |
|
函式失敗。 使用 GetLastError 函式來取得錯誤碼。 |
備註
您可以使用結構化 XML 查詢從多個通道匯出事件, (請參閱 取用事件) ;不過,您無法使用此函式來合併多個記錄檔中的事件。 如果查詢結果是空的,服務會建立包含標頭信息的檔案,但沒有事件。
若要從通道移除事件,並將其寫入目標記錄檔,請呼叫 EvtClearLog 函式。 若要在記錄檔中包含本地化字串與事件,請呼叫 EvtArchiveExportedLog 函式。
您必須指定目標記錄檔的絕對路徑;您無法使用相對路徑和環境變數來指定目標記錄檔。 路徑可以是 UNC) 路徑 (通用命名慣例。 您應該使用 .evtx 作為擴展名。
此函式只會影響指定的通道或記錄檔—如果通道使用 autoBackup 或 fileMax,此函式不會影響這些備份檔。
範例
如需示範如何使用此函式的範例,請參閱 將事件儲存至記錄檔。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winevt.h |
程式庫 | Wevtapi.lib |
Dll | Wevtapi.dll |