Share via


(Windows 事件記錄檔) 取事件

您可以從通道或記錄檔取用事件。 若要取用事件,您可以取用所有事件,也可以指定 XPath 運算式來識別您想要取用的事件。 若要判斷您可以在 XPath 運算式中使用的事件元素和屬性,請參閱 事件架構

Windows 事件記錄檔支援 XPath 1.0 的子集。 如需限制的詳細資訊,請參閱 XPath 1.0 限制

下列範例顯示簡單的 XPath 運算式。

// The following query selects all events from the channel or log file
XPath Query: *

// The following query selects all the LowOnMemory events from the channel or log file
XPath Query: *[UserData/LowOnMemory]

// The following query selects all events with a severity level of 1 (Critical) from the channel or log file
XPath Query: *[System/Level=1]

// The following query shows a compound expression that selects all events from the channel or log file
// where the printer's name is MyPrinter and severity level is 1.
XPath Query: *[UserData/*/PrinterName="MyPrinter" and System/Level=1]

// The following query selects all events from the channel or log file where the severity level is
// less than or equal to 3 and the event occurred in the last 24 hour period.
XPath Query: *[System[(Level <= 3) and TimeCreated[timediff(@SystemTime) <= 86400000]]]

您可以直接在呼叫 EvtQueryEvtSubscribe 函式時使用 XPath 運算式,也可以使用包含 XPath 運算式的結構化 XML 查詢。 對於查詢來自單一來源之事件的簡單查詢,使用 XPath 運算式是可行的。 如果 XPath 運算式是包含超過 20 個運算式的複合運算式,或您查詢來自多個來源的事件,則必須使用結構化 XML 查詢。 如需結構化 XML 查詢專案的詳細資訊,請參閱 查詢架構

結構化查詢會識別事件的來源,以及一或多個選取器或隱藏器。 選取器包含 XPath 運算式,會從來源選取事件,而隱藏器包含防止選取事件的 XPath 運算式。 您可以從多個來源選取事件。 如果選取器和隱藏器識別相同的事件,則事件不會包含在結果中。

下列顯示結構化 XML 查詢,指定一組選取器和隱藏器。

<QueryList>
  <Query Id="0">
    <Select Path="Application">
        *[System[(Level <= 3) and 
        TimeCreated[timediff(@SystemTime) <= 86400000]]]
    </Select>
    <Suppress Path="Application">
        *[System[(Level = 2)]]
    </Suppress>
    <Select Path="System">
        *[System[(Level=1  or Level=2 or Level=3) and 
        TimeCreated[timediff(@SystemTime) <= 86400000]]]
    </Select>
  </Query>
</QueryList>

查詢的結果集不會在查詢時包含事件的快照集。 相反地,結果集會在查詢時包含事件,而且也會包含所有在列舉結果時符合查詢準則的新事件。

注意

事件的順序會針對由相同執行緒寫入的事件保留。 不過,多個處理器電腦上由不同處理器上的個別執行緒所撰寫的事件可能會不依序顯示。

 

如需取用事件的詳細資訊,請參閱下列主題:

用於取用事件的標準使用者工具如下:

XPath 1.0 限制

Windows 事件記錄檔支援 XPath 1.0 的子集。 主要限制是只有代表事件的 XML 元素可由事件選取器選取。 未選取事件的 XPath 查詢無效。 所有有效的選取器路徑都是以 * 或 「Event」 開頭。 所有位置路徑都會在事件節點上運作,並且是由一系列步驟所組成。 每個步驟都是三個部分的結構:軸、節點測試和述詞。 如需這些元件和 XPath 1.0 的詳細資訊,請參閱 XML 路徑語言 (XPath) 。 Windows 事件記錄檔會對運算式設定下列限制:

  • 軸:僅支援子 (預設) 和屬性 (及其簡短 「@」) 軸。
  • 節點測試:僅支援節點名稱和 NCName 測試。 支援選取任何字元的 「*」 字元。
  • 述詞:如果位置路徑符合下列限制,則接受任何有效的 XPath 運算式:
    • 支援標準運算子 ORAND、=、!=、=、 << 、= > 、 > 、 和括弧。
    • 不支援產生節點名稱的字串值。
    • 不支援反向順序評估。
    • 不支援節點集。
    • 不支援命名空間範圍。
    • 不支援命名空間、處理和批註節點。
    • 不支援內容大小。
    • 不支援變數系結。
    • 只有分葉節點上才支援 position 函式及其速記陣列參考) (。
    • 支援 Band 函式。 函式會針對兩個整數數位引數執行位 AND。 如果位 AND 的結果為非零,則函式會評估為 true;否則,函式會評估為 false。
    • 支援 timediff 函式。 函式會計算第二個引數與第一個引數之間的差異。 其中一個引數必須是常值數位。 引數必須使用 FILETIME 標記法。 結果是兩次之間的毫秒數。 如果第二個引數代表稍後的時間,則結果為正數;否則為負數。 未提供第二個引數時,會使用目前的系統時間。