2017-03-22 21 views
1

Xpath 1.0互換フィルタを開発する際に、Using XPath starts-with or contains functions to search Windows event logsの回答に記載されているように、4771のイベントID彼らは特定のコンピュータ名を持っていないので。ここでは、私がイベント・ビューアーで照合/表示したくない4771イベントのサンプルxmlを示します。XPathを使用してWindowsイベントログの他の条件と一致しないイベントを選択します

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> 
<System> 
    <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{94849225-5448-4994-A5BA-1E3B0928C30D}" /> 
    <EventID>4771</EventID> 
    <Version>0</Version> 
    <Level>0</Level> 
    <Task>14339</Task> 
    <Opcode>0</Opcode> 
    <Keywords>0x8010000000000000</Keywords> 
    <TimeCreated SystemTime="2017-03-22T20:13:28.105262600Z" /> 
    <EventRecordID>4368371459</EventRecordID> 
    <Correlation /> 
    <Execution ProcessID="564" ThreadID="1340" /> 
    <Channel>Security</Channel> 
    <Computer>sample.computer.net</Computer> 
    <Security /> 
    </System> 
<EventData> 
    <Data Name="TargetUserName">abc$</Data> 
    <Data Name="TargetSid">S-1-5-21-376469911-3458163162-136990061-477177</Data> 
    <Data Name="ServiceName">krbtgt/computer.net</Data> 
    <Data Name="TicketOptions">0x40810010</Data> 
    <Data Name="Status">0x18</Data> 
    <Data Name="PreAuthType">2</Data> 
    <Data Name="IpAddress">::ffff:10.0.0.1</Data> 
    <Data Name="IpPort">56815</Data> 
    <Data Name="CertIssuerName" /> 
    <Data Name="CertSerialNumber" /> 
    <Data Name="CertThumbprint" /> 
    </EventData> 
    </Event> 

これは私が試したフィルタの失敗です。イベントが表示され、適切に除外されていない、つまり、ターゲットユーザー名除外が正しく処理されていない。

<QueryList> 
    <Query Id="0" Path="ForwardedEvents"> 
    <Select Path="ForwardedEvents">*[System[(EventID=4771)]] and *[EventData[Data[@Name='TargetUserName'] and (Data!='abc$')]]</Select> 
    </Query> 
</QueryList> 

(Data!='abc$')部分があれば、イベント全体が一致する指定された値と一致しない1つのデータ要素があるようにすべてのデータ要素に適用されている表示します。データエレメントとTargetUserName属性の組み合わせがあり、そのエレメントの値がabc $の場合、イベント全体が一致してはならないということです。私たちは、あなたがこの方法を説明したものを行うことができ、通常のXPath 1.0の環境では

答えて

1

:、.

*[System/EventID=4771 and EventData/Data[@Name='TargetUserName' and .!='abc$']] 

どうやらWindowsイベントログのXPathはデッドエンドで私たちを残し、次のいずれかをサポートしていません。 self::,text(),node()。与えられたEventDataに存在する場合、我々はXPathを使用して取得することができ、最も近いが、次のように私たちが行うことができますので、常に最初Data子として表示され、その「TargetUserName」を想定して次のようになります。

*[System/EventID=4771 and EventData[Data[1]/@Name='TargetUserName' and Data[1]!='abc$']] 
関連する問題