Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 3
  • 220

Witam,

w jaki sposób można z dziennika zdarzeń wyfiltrować konkretne zdarzenie z poziomu filtrów XML-owych?

Konkretnie chodzi mi o przypadek, gdzie chcę wyfiltrować wszystkie zdarzenia z dziennika Security o ID = 4656 oraz takie, które w polu XML oznaczonym, jako "ObjectName" zawierają treść np.: *Test*.

Nie działa zapytanie (Nie zwraca wyników):


<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
	*[EventData[Data[@Name='ObjectName'] and (Data='TEST')]]
	and
 	*[System[(EventID=4656)]]
    </Select>
  </Query>
</QueryList>
 



Zrobić to z PowerShella można dosyć prosto filtrując treść wiadomości np.:


Get-EventLog Security -InstanceID 4656 | ? {$_.Message -match "TEST"}



Ale nie o to mi chodzi... Potrzebuję koniecznie wykorzystać filtrowanie XML po konkretnym polu, ponieważ później chcę do takiego zdarzenia przypiąć skrypt - uruchamiany tylko wtedy, gdy właśnie w polu "ObjectName" wystąpi wartość *TEST*, a nie dla każdego wystąpienia zdarzenia odpalać skrypt i w skrypcie sprawdzać wartość, bo to nie ma sensu :)

 

Jak więc poprawić filtrowanie XML, żeby działało jak należy?

Marcin_Krzanowicz
  • Zapytał
  • @ Marcin_Krzanowicz | 04.07.2015
    • laureat
    • 9
    • 4
    • 23
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 3

Przykładowy filtr wyszukujący zdarzenie o nr „4652” wygenerowane dla użytkownika „Administrator”:





Z Pana przypadku wynika, że zmienna *[EventData[Data[@Name='ObjectName'] nigdy nie posiada wartości „test”. Odwołując się przez polecenie PowerShella sprawdza Pan czy wartość „test” pojawia się gdziekolwiek w logach, w którejkolwiek zmiennej:
 




(w moim przypadku Administrator to „TargetUserName”):





Akurat w Pana przypadku udało się wyświetlić logi zdarzenia 4656 dla wartości „test” za pomocą polecenia PowerShell, tylko dlatego, że wartość „test” opisuje inną zmienną niż „ObjectName”. Proszę spróbować zamienić wartość skryptu XML:
*[EventData[Data[@Name='ObjectName'] and (Data="test")]]
na taki wpis:
*[EventData[Data and (Data="test")]]
powinien Pan uzyskać taki sam efekt jak w zastosowanym poleceniu PowerShell.

Podobny wątek na quorum:


https://quorum.akademiq.pl/discussion/982/jak-filtrować-logi-dotyczące-procesu-logowania-dotyczące-określonego-użytkownika

 

  • Odpowiedział
  • @ | 06.07.2015
  • TRENER ALTKOM AKADEMII